#138 device flag models
This commit is contained in:
1 parent
8afe4195a9
commit
8c48ab6ecd
9 files changed
+312
-5
No files matched your search
@@ -175,6 +175,10 @@
|
|||||||
<Compile Include="Migrations\202304150715559_DBv22.Designer.cs">
|
<Compile Include="Migrations\202304150715559_DBv22.Designer.cs">
|
||||||
<DependentUpon>202304150715559_DBv22.cs</DependentUpon>
|
<DependentUpon>202304150715559_DBv22.cs</DependentUpon>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
<Compile Include="Migrations\202401130531317_DBv23.cs" />
|
||||||
|
<Compile Include="Migrations\202401130531317_DBv23.Designer.cs">
|
||||||
|
<DependentUpon>202401130531317_DBv23.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
<Compile Include="Migrations\Configuration.cs" />
|
<Compile Include="Migrations\Configuration.cs" />
|
||||||
<Compile Include="Migrations\DiscoDataMigrator.cs" />
|
<Compile Include="Migrations\DiscoDataMigrator.cs" />
|
||||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||||
@@ -256,6 +260,9 @@
|
|||||||
<EmbeddedResource Include="Migrations\202304150715559_DBv22.resx">
|
<EmbeddedResource Include="Migrations\202304150715559_DBv22.resx">
|
||||||
<DependentUpon>202304150715559_DBv22.cs</DependentUpon>
|
<DependentUpon>202304150715559_DBv22.cs</DependentUpon>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="Migrations\202401130531317_DBv23.resx">
|
||||||
|
<DependentUpon>202401130531317_DBv23.cs</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
<EmbeddedResource Include="Properties\Resources.resx">
|
<EmbeddedResource Include="Properties\Resources.resx">
|
||||||
<Generator>ResXFileCodeGenerator</Generator>
|
<Generator>ResXFileCodeGenerator</Generator>
|
||||||
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
||||||
|
|||||||
@@ -0,0 +1,27 @@
|
|||||||
|
// <auto-generated />
|
||||||
|
namespace Disco.Data.Migrations
|
||||||
|
{
|
||||||
|
using System.Data.Entity.Migrations;
|
||||||
|
using System.Data.Entity.Migrations.Infrastructure;
|
||||||
|
using System.Resources;
|
||||||
|
|
||||||
|
public sealed partial class DBv23 : IMigrationMetadata
|
||||||
|
{
|
||||||
|
private readonly ResourceManager Resources = new ResourceManager(typeof(DBv23));
|
||||||
|
|
||||||
|
string IMigrationMetadata.Id
|
||||||
|
{
|
||||||
|
get { return "202401130531317_DBv23"; }
|
||||||
|
}
|
||||||
|
|
||||||
|
string IMigrationMetadata.Source
|
||||||
|
{
|
||||||
|
get { return null; }
|
||||||
|
}
|
||||||
|
|
||||||
|
string IMigrationMetadata.Target
|
||||||
|
{
|
||||||
|
get { return Resources.GetString("Target"); }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,67 @@
|
|||||||
|
namespace Disco.Data.Migrations
|
||||||
|
{
|
||||||
|
using System;
|
||||||
|
using System.Data.Entity.Migrations;
|
||||||
|
|
||||||
|
public partial class DBv23 : DbMigration
|
||||||
|
{
|
||||||
|
public override void Up()
|
||||||
|
{
|
||||||
|
CreateTable(
|
||||||
|
"dbo.DeviceFlagAssignments",
|
||||||
|
c => new
|
||||||
|
{
|
||||||
|
Id = c.Int(nullable: false, identity: true),
|
||||||
|
DeviceFlagId = c.Int(nullable: false),
|
||||||
|
DeviceSerialNumber = c.String(nullable: false, maxLength: 60),
|
||||||
|
AddedDate = c.DateTime(nullable: false),
|
||||||
|
AddedUserId = c.String(nullable: false, maxLength: 50),
|
||||||
|
RemovedDate = c.DateTime(),
|
||||||
|
RemovedUserId = c.String(maxLength: 50),
|
||||||
|
Comments = c.String(),
|
||||||
|
OnAssignmentExpressionResult = c.String(),
|
||||||
|
OnUnassignmentExpressionResult = c.String(),
|
||||||
|
})
|
||||||
|
.PrimaryKey(t => t.Id)
|
||||||
|
.ForeignKey("dbo.DeviceFlags", t => t.DeviceFlagId)
|
||||||
|
.ForeignKey("dbo.Devices", t => t.DeviceSerialNumber)
|
||||||
|
.ForeignKey("dbo.Users", t => t.AddedUserId)
|
||||||
|
.ForeignKey("dbo.Users", t => t.RemovedUserId)
|
||||||
|
.Index(t => t.DeviceFlagId)
|
||||||
|
.Index(t => t.DeviceSerialNumber)
|
||||||
|
.Index(t => t.AddedUserId)
|
||||||
|
.Index(t => t.RemovedUserId);
|
||||||
|
|
||||||
|
CreateTable(
|
||||||
|
"dbo.DeviceFlags",
|
||||||
|
c => new
|
||||||
|
{
|
||||||
|
Id = c.Int(nullable: false, identity: true),
|
||||||
|
Name = c.String(nullable: false, maxLength: 100),
|
||||||
|
Description = c.String(maxLength: 500),
|
||||||
|
Icon = c.String(nullable: false, maxLength: 25),
|
||||||
|
IconColour = c.String(nullable: false, maxLength: 10),
|
||||||
|
DevicesLinkedGroup = c.String(),
|
||||||
|
DeviceUsersLinkedGroup = c.String(),
|
||||||
|
OnAssignmentExpression = c.String(),
|
||||||
|
OnUnassignmentExpression = c.String(),
|
||||||
|
})
|
||||||
|
.PrimaryKey(t => t.Id);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void Down()
|
||||||
|
{
|
||||||
|
DropIndex("dbo.DeviceFlagAssignments", new[] { "RemovedUserId" });
|
||||||
|
DropIndex("dbo.DeviceFlagAssignments", new[] { "AddedUserId" });
|
||||||
|
DropIndex("dbo.DeviceFlagAssignments", new[] { "DeviceSerialNumber" });
|
||||||
|
DropIndex("dbo.DeviceFlagAssignments", new[] { "DeviceFlagId" });
|
||||||
|
DropForeignKey("dbo.DeviceFlagAssignments", "RemovedUserId", "dbo.Users");
|
||||||
|
DropForeignKey("dbo.DeviceFlagAssignments", "AddedUserId", "dbo.Users");
|
||||||
|
DropForeignKey("dbo.DeviceFlagAssignments", "DeviceSerialNumber", "dbo.Devices");
|
||||||
|
DropForeignKey("dbo.DeviceFlagAssignments", "DeviceFlagId", "dbo.DeviceFlags");
|
||||||
|
DropTable("dbo.DeviceFlags");
|
||||||
|
DropTable("dbo.DeviceFlagAssignments");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,123 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<data name="Target" xml:space="preserve">
|
||||||
|
<value>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 truncated
|
||||||
|
</data>
|
||||||
|
</root>
|
||||||
@@ -1,9 +1,6 @@
|
|||||||
using System;
|
using Disco.Models.Repository;
|
||||||
using System.Collections.Generic;
|
using System;
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Data.Entity;
|
using System.Data.Entity;
|
||||||
using Disco.Models.Repository;
|
|
||||||
using System.Data.Entity.ModelConfiguration.Conventions;
|
using System.Data.Entity.ModelConfiguration.Conventions;
|
||||||
|
|
||||||
namespace Disco.Data.Repository
|
namespace Disco.Data.Repository
|
||||||
@@ -38,6 +35,8 @@ namespace Disco.Data.Repository
|
|||||||
public virtual DbSet<DeviceBatchAttachment> DeviceBatchAttachments { get; set; }
|
public virtual DbSet<DeviceBatchAttachment> DeviceBatchAttachments { get; set; }
|
||||||
public virtual DbSet<DeviceComponent> DeviceComponents { get; set; }
|
public virtual DbSet<DeviceComponent> DeviceComponents { get; set; }
|
||||||
public virtual DbSet<DeviceAttachment> DeviceAttachments { get; set; }
|
public virtual DbSet<DeviceAttachment> DeviceAttachments { get; set; }
|
||||||
|
public virtual DbSet<DeviceFlag> DeviceFlags { get; set; }
|
||||||
|
public virtual DbSet<DeviceFlagAssignment> DeviceFlagAssignments { get; set; }
|
||||||
|
|
||||||
public virtual DbSet<DeviceCertificate> DeviceCertificates { get; set; }
|
public virtual DbSet<DeviceCertificate> DeviceCertificates { get; set; }
|
||||||
|
|
||||||
|
|||||||
@@ -52,6 +52,8 @@
|
|||||||
<Compile Include="Exporting\ExportFieldMetadata.cs" />
|
<Compile Include="Exporting\ExportFieldMetadata.cs" />
|
||||||
<Compile Include="Exporting\ExportFormat.cs" />
|
<Compile Include="Exporting\ExportFormat.cs" />
|
||||||
<Compile Include="Exporting\IExportRecord.cs" />
|
<Compile Include="Exporting\IExportRecord.cs" />
|
||||||
|
<Compile Include="Repository\Device\Flag\DeviceFlag.cs" />
|
||||||
|
<Compile Include="Repository\Device\Flag\DeviceFlagAssignment.cs" />
|
||||||
<Compile Include="Services\Expressions\Extensions\ImageExpressionFormat.cs" />
|
<Compile Include="Services\Expressions\Extensions\ImageExpressionFormat.cs" />
|
||||||
<Compile Include="ClientServices\EnrolmentInformation\BaseBoard.cs" />
|
<Compile Include="ClientServices\EnrolmentInformation\BaseBoard.cs" />
|
||||||
<Compile Include="ClientServices\EnrolmentInformation\Battery.cs" />
|
<Compile Include="ClientServices\EnrolmentInformation\Battery.cs" />
|
||||||
|
|||||||
@@ -51,6 +51,7 @@ namespace Disco.Models.Repository
|
|||||||
|
|
||||||
[InverseProperty("DeviceSerialNumber")]
|
[InverseProperty("DeviceSerialNumber")]
|
||||||
public virtual IList<Job> Jobs { get; set; }
|
public virtual IList<Job> Jobs { get; set; }
|
||||||
|
public virtual IList<DeviceFlagAssignment> DeviceFlagAssignments { get; set; }
|
||||||
|
|
||||||
public override string ToString()
|
public override string ToString()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -0,0 +1,37 @@
|
|||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
|
||||||
|
namespace Disco.Models.Repository
|
||||||
|
{
|
||||||
|
public class DeviceFlag
|
||||||
|
{
|
||||||
|
[Key]
|
||||||
|
public int Id { get; set; }
|
||||||
|
|
||||||
|
[Required, StringLength(100)]
|
||||||
|
public string Name { get; set; }
|
||||||
|
|
||||||
|
[StringLength(500), DataType(DataType.MultilineText)]
|
||||||
|
public string Description { get; set; }
|
||||||
|
|
||||||
|
[Required, StringLength(25)]
|
||||||
|
public string Icon { get; set; }
|
||||||
|
[Required, StringLength(10)]
|
||||||
|
public string IconColour { get; set; }
|
||||||
|
|
||||||
|
public string DevicesLinkedGroup { get; set; }
|
||||||
|
public string DeviceUsersLinkedGroup { get; set; }
|
||||||
|
|
||||||
|
[DataType(DataType.MultilineText)]
|
||||||
|
public string OnAssignmentExpression { get; set; }
|
||||||
|
[DataType(DataType.MultilineText)]
|
||||||
|
public string OnUnassignmentExpression { get; set; }
|
||||||
|
|
||||||
|
public virtual IList<DeviceFlagAssignment> DeviceFlagAssignments { get; set; }
|
||||||
|
|
||||||
|
public override string ToString()
|
||||||
|
{
|
||||||
|
return Name;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,44 @@
|
|||||||
|
using System;
|
||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
|
|
||||||
|
namespace Disco.Models.Repository
|
||||||
|
{
|
||||||
|
public class DeviceFlagAssignment
|
||||||
|
{
|
||||||
|
[Key]
|
||||||
|
public int Id { get; set; }
|
||||||
|
[Required]
|
||||||
|
public int DeviceFlagId { get; set; }
|
||||||
|
[Required]
|
||||||
|
public string DeviceSerialNumber { get; set; }
|
||||||
|
|
||||||
|
[Required]
|
||||||
|
public DateTime AddedDate { get; set; }
|
||||||
|
[Required]
|
||||||
|
public string AddedUserId { get; set; }
|
||||||
|
public DateTime? RemovedDate { get; set; }
|
||||||
|
public string RemovedUserId { get; set; }
|
||||||
|
|
||||||
|
public string Comments { get; set; }
|
||||||
|
|
||||||
|
public string OnAssignmentExpressionResult { get; set; }
|
||||||
|
public string OnUnassignmentExpressionResult { get; set; }
|
||||||
|
|
||||||
|
[ForeignKey(nameof(DeviceFlagId)), InverseProperty("DeviceFlagAssignments")]
|
||||||
|
public virtual DeviceFlag DeviceFlag { get; set; }
|
||||||
|
|
||||||
|
[ForeignKey(nameof(DeviceSerialNumber)), InverseProperty("DeviceFlagAssignments")]
|
||||||
|
public virtual Device Device { get; set; }
|
||||||
|
|
||||||
|
[ForeignKey("AddedUserId")]
|
||||||
|
public virtual User AddedUser { get; set; }
|
||||||
|
[ForeignKey("RemovedUserId")]
|
||||||
|
public virtual User RemovedUser { get; set; }
|
||||||
|
|
||||||
|
public override string ToString()
|
||||||
|
{
|
||||||
|
return $"Device Flag Id: {DeviceFlagId}; Device Serial Number: {DeviceSerialNumber}; Added: {AddedDate:s}";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in new issue
Block a user