diff --git a/Sevomin.Models/Job.cs b/Sevomin.Models/Job.cs index 44f443e..ee8e6fc 100644 --- a/Sevomin.Models/Job.cs +++ b/Sevomin.Models/Job.cs @@ -32,6 +32,6 @@ namespace Sevomin.Models public bool ShowCompanyLogo { get; set; } public bool IsFullTime { get; set; } - + public virtual ICollection JobParameters { get; set; } } } diff --git a/Sevomin.Models/JobParameter.cs b/Sevomin.Models/JobParameter.cs index c01cde6..9bc180a 100644 --- a/Sevomin.Models/JobParameter.cs +++ b/Sevomin.Models/JobParameter.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; using System.Linq; using System.Text; using System.Threading.Tasks; @@ -12,12 +13,22 @@ namespace Sevomin.Models [Key] public long Id { get; set; } + [Index("IX_JobParameterUniqueIndex", Order=1, IsUnique=true)] + [Required] public long ParameterId { get; set; } - public virtual Parameter Parameter { get; set; } + + [Index] + [Index("IX_JobParameterUniqueIndex", Order=2, IsUnique=true)] + [Required] public long JobId { get; set; } - public virtual Job Job {get;set;} + public string StringValue { get; set; } + public decimal? NumericValue { get; set; } + public byte Moscow { get; set; } + + public virtual Parameter Parameter { get; set; } + public virtual Job Job { get; set; } } } diff --git a/Sevomin.Models/Migrations/201403281016428_JobParameter.Designer.cs b/Sevomin.Models/Migrations/201403281016428_JobParameter.Designer.cs new file mode 100644 index 0000000..fea61cf --- /dev/null +++ b/Sevomin.Models/Migrations/201403281016428_JobParameter.Designer.cs @@ -0,0 +1,29 @@ +// +namespace Sevomin.Models.Migrations +{ + using System.CodeDom.Compiler; + using System.Data.Entity.Migrations; + using System.Data.Entity.Migrations.Infrastructure; + using System.Resources; + + [GeneratedCode("EntityFramework.Migrations", "6.1.0-30225")] + public sealed partial class JobParameter : IMigrationMetadata + { + private readonly ResourceManager Resources = new ResourceManager(typeof(JobParameter)); + + string IMigrationMetadata.Id + { + get { return "201403281016428_JobParameter"; } + } + + string IMigrationMetadata.Source + { + get { return null; } + } + + string IMigrationMetadata.Target + { + get { return Resources.GetString("Target"); } + } + } +} diff --git a/Sevomin.Models/Migrations/201403281016428_JobParameter.cs b/Sevomin.Models/Migrations/201403281016428_JobParameter.cs new file mode 100644 index 0000000..e6111e6 --- /dev/null +++ b/Sevomin.Models/Migrations/201403281016428_JobParameter.cs @@ -0,0 +1,38 @@ +namespace Sevomin.Models.Migrations +{ + using System; + using System.Data.Entity.Migrations; + + public partial class JobParameter : DbMigration + { + public override void Up() + { + CreateTable( + "dbo.JobParameters", + c => new + { + Id = c.Long(nullable: false, identity: true), + ParameterId = c.Long(nullable: false), + JobId = c.Long(nullable: false), + StringValue = c.String(), + NumericValue = c.Decimal(precision: 18, scale: 2), + Moscow = c.Byte(nullable: false), + }) + .PrimaryKey(t => t.Id) + .ForeignKey("dbo.Jobs", t => t.JobId, cascadeDelete: true) + .ForeignKey("dbo.Parameters", t => t.ParameterId, cascadeDelete: true) + .Index(t => new { t.ParameterId, t.JobId }, unique: true, name: "IX_JobParameterUniqueIndex") + .Index(t => t.JobId); + + } + + public override void Down() + { + DropForeignKey("dbo.JobParameters", "ParameterId", "dbo.Parameters"); + DropForeignKey("dbo.JobParameters", "JobId", "dbo.Jobs"); + DropIndex("dbo.JobParameters", new[] { "JobId" }); + DropIndex("dbo.JobParameters", "IX_JobParameterUniqueIndex"); + DropTable("dbo.JobParameters"); + } + } +} diff --git a/Sevomin.Models/Migrations/201403281016428_JobParameter.resx b/Sevomin.Models/Migrations/201403281016428_JobParameter.resx new file mode 100644 index 0000000..c129750 --- /dev/null +++ b/Sevomin.Models/Migrations/201403281016428_JobParameter.resx @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 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 + + + dbo + + \ No newline at end of file diff --git a/Sevomin.Models/Parameter.cs b/Sevomin.Models/Parameter.cs index 9c48c57..9b3a2f2 100644 --- a/Sevomin.Models/Parameter.cs +++ b/Sevomin.Models/Parameter.cs @@ -44,5 +44,7 @@ namespace Sevomin.Models return SevominDbContext.Current.ParameterValues.Where(x => x.GroupKey == ParameterValueId).ToList(); } } + + public virtual ICollection JobParameters { get; set; } } } diff --git a/Sevomin.Models/Sevomin.Models.csproj b/Sevomin.Models/Sevomin.Models.csproj index 1564363..a964d3d 100644 --- a/Sevomin.Models/Sevomin.Models.csproj +++ b/Sevomin.Models/Sevomin.Models.csproj @@ -92,6 +92,10 @@ 201403280938368_Job.cs + + + 201403281016428_JobParameter.cs + @@ -124,6 +128,9 @@ 201403280938368_Job.cs + + 201403281016428_JobParameter.cs +