diff --git a/Sevomin.Models/DovominJob.cs b/Sevomin.Models/DovominJob.cs index 9deb58c..fde65e1 100644 --- a/Sevomin.Models/DovominJob.cs +++ b/Sevomin.Models/DovominJob.cs @@ -1,96 +1,106 @@ -using System; -using System.ComponentModel.DataAnnotations; -using System.ComponentModel.DataAnnotations.Schema; -using System.Linq; - -namespace Sevomin.Models -{ - public class DovominJob - { - [Key] - public long Id { get; set; } - - [Index("IX_DovominJobUniqueIndex", Order = 1, IsUnique = true)] - [Required] - [StringLength(128)] - public string DovominId { get; set; } - - [Index] - [Index("IX_DovominJobUniqueIndex", Order = 2, IsUnique = true)] - [Required] - public long JobId { get; set; } - - [Required] - public DateTime ApplyDate { get; set; } - - public string CoverLetter { get; set; } - - public decimal Affinity { get; set; } - - public bool MinimumRequirement { get; set; } - - public DateTime? AvalinSeen { get; set; } - - public string AvalinComment { get; set; } - - public bool AvalinDelete { get; set; } - - public virtual Dovomin Dovomin { get; set; } - public virtual Job Job { get; set; } - - public DovominJob(Dovomin dovomin, Job job) - { - this.Dovomin = dovomin; - this.Job = job; - CalculateAffinity(); - } - - public DovominJob() - { - } - - public void CalculateAffinity() - { - if (Dovomin == null || Job == null) - return; - - MinimumRequirement = true; - decimal sum = 0; - decimal count = 0; - Affinity = 0; - foreach (var jp in - Job.JobParameters.Where(x=>x.Moscow != 0 && !string.IsNullOrWhiteSpace(x.StringValue) )) - { - count++; - DovominParameter dp = Dovomin.DovominParameters.SingleOrDefault(x=>x.ParameterId == jp.ParameterId); - if (dp == null) - continue; - if (jp.Moscow == 4) - { - if ((jp.StringValue != dp.StringValue && jp.NumericValue == 0) - || (jp.NumericValue > 0 && jp.NumericValue > dp.NumericValue)) - { - MinimumRequirement = false; - } - } - - decimal? dpv = dp.NumericValue; - decimal? jpv = jp.NumericValue; - decimal m = jp.Moscow / 4; - if (jpv == null) - { - if (jp.StringValue == dp.StringValue) - sum += m; - continue; - } - if (dpv == null) - continue; - if (jpv <= dpv) - sum += m; - else - sum += m * ((jpv.Value - dpv.Value) / (jpv.Value == 0 ? (decimal)0.000001 : jpv.Value)); - } - this.Affinity = sum / (count == 0 ? (decimal)0.000001 : count); - } - } -} +using System; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using System.Linq; + +namespace Sevomin.Models +{ + public class DovominJob + { + [Key] + public long Id { get; set; } + + [Index("IX_DovominJobUniqueIndex", Order = 1, IsUnique = true)] + [Required] + [StringLength(128)] + public string DovominId { get; set; } + + [Index] + [Index("IX_DovominJobUniqueIndex", Order = 2, IsUnique = true)] + [Required] + public long JobId { get; set; } + + [Required] + public DateTime ApplyDate { get; set; } + + public string CoverLetter { get; set; } + + public decimal Affinity { get; set; } + + public bool MinimumRequirement { get; set; } + + public DateTime? AvalinSeen { get; set; } + + public string AvalinComment { get; set; } + + public bool AvalinDelete { get; set; } + + public virtual Dovomin Dovomin { get; set; } + public virtual Job Job { get; set; } + + public DovominJob(Dovomin dovomin, Job job) + { + this.Dovomin = dovomin; + this.Job = job; + CalculateAffinity(); + } + + public DovominJob() + { + } + + public void CalculateAffinity() + { + if (Dovomin == null || Job == null) + return; + + MinimumRequirement = true; + decimal sum = 0; + decimal count = 0; + decimal maxPoint = 0; + Affinity = 0; + foreach (var jp in + Job.JobParameters.Where(x=>x.Moscow != 0 && !string.IsNullOrWhiteSpace(x.StringValue) )) + { + count++; + decimal m = jp.Moscow - 1 ; + maxPoint += jp.Parameter.BasePoint * m; + DovominParameter dp = Dovomin.DovominParameters.SingleOrDefault(x=>x.ParameterId == jp.ParameterId); + if (dp == null) + continue; + if (jp.Moscow == 4) + { + if ((jp.StringValue != dp.StringValue && jp.NumericValue == 0) + || (jp.NumericValue > 0 && jp.NumericValue > dp.NumericValue)) + { + MinimumRequirement = false; + } + } + + decimal? dpv = dp.NumericValue; + decimal? jpv = jp.NumericValue; + if (jpv == null) + { + if (jp.StringValue == dp.StringValue) + sum += m * jp.Parameter.BasePoint; + continue; + } + if (dpv == null) + continue; + + if (jpv <= dpv) + sum += m * jp.Parameter.BasePoint; + + //v2 + //if (jpv <= dpv) + // sum += m; + //else + // sum += m * ((jpv.Value - dpv.Value) / (jpv.Value == 0 ? (decimal)0.000001 : jpv.Value)); + } + if (maxPoint == 0) + this.Affinity = 100; + + this.Affinity = Math.Round( sum / maxPoint, 2, MidpointRounding.ToEven) * 100; + } + } +} diff --git a/Sevomin.Models/Migrations/201409010546480_basepoint.Designer.cs b/Sevomin.Models/Migrations/201409010546480_basepoint.Designer.cs new file mode 100644 index 0000000..3b7177d --- /dev/null +++ b/Sevomin.Models/Migrations/201409010546480_basepoint.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 basepoint : IMigrationMetadata + { + private readonly ResourceManager Resources = new ResourceManager(typeof(basepoint)); + + string IMigrationMetadata.Id + { + get { return "201409010546480_basepoint"; } + } + + string IMigrationMetadata.Source + { + get { return null; } + } + + string IMigrationMetadata.Target + { + get { return Resources.GetString("Target"); } + } + } +} diff --git a/Sevomin.Models/Migrations/201409010546480_basepoint.cs b/Sevomin.Models/Migrations/201409010546480_basepoint.cs new file mode 100644 index 0000000..393bcb7 --- /dev/null +++ b/Sevomin.Models/Migrations/201409010546480_basepoint.cs @@ -0,0 +1,266 @@ +namespace Sevomin.Models.Migrations +{ + using System; + using System.Data.Entity.Migrations; + + public partial class basepoint : DbMigration + { + public override void Up() + { + CreateTable( + "dbo.DovominJobs", + c => new + { + Id = c.Long(nullable: false, identity: true), + DovominId = c.String(nullable: false, maxLength: 128), + JobId = c.Long(nullable: false), + ApplyDate = c.DateTime(nullable: false), + CoverLetter = c.String(), + Affinity = c.Decimal(nullable: false, precision: 18, scale: 2), + MinimumRequirement = c.Boolean(nullable: false), + AvalinSeen = c.DateTime(), + AvalinComment = c.String(), + AvalinDelete = c.Boolean(nullable: false), + }) + .PrimaryKey(t => t.Id) + .ForeignKey("dbo.Dovomin", t => t.DovominId) + .ForeignKey("dbo.Jobs", t => t.JobId, cascadeDelete: true) + .Index(t => new { t.DovominId, t.JobId }, unique: true, name: "IX_DovominJobUniqueIndex") + .Index(t => t.JobId); + + CreateTable( + "dbo.AspNetUsers", + c => new + { + Id = c.String(nullable: false, maxLength: 128), + DisplayName = c.String(), + SignUpDate = c.DateTime(nullable: false), + ConfirmationCode = c.String(), + Email = c.String(maxLength: 256), + EmailConfirmed = c.Boolean(nullable: false), + PasswordHash = c.String(), + SecurityStamp = c.String(), + PhoneNumber = c.String(), + PhoneNumberConfirmed = c.Boolean(nullable: false), + TwoFactorEnabled = c.Boolean(nullable: false), + LockoutEndDateUtc = c.DateTime(), + LockoutEnabled = c.Boolean(nullable: false), + AccessFailedCount = c.Int(nullable: false), + UserName = c.String(nullable: false, maxLength: 256), + }) + .PrimaryKey(t => t.Id) + .Index(t => t.UserName, unique: true, name: "UserNameIndex"); + + CreateTable( + "dbo.AspNetUserClaims", + c => new + { + Id = c.Int(nullable: false, identity: true), + UserId = c.String(nullable: false, maxLength: 128), + ClaimType = c.String(), + ClaimValue = c.String(), + }) + .PrimaryKey(t => t.Id) + .ForeignKey("dbo.AspNetUsers", t => t.UserId, cascadeDelete: true) + .Index(t => t.UserId); + + CreateTable( + "dbo.DovominParameters", + c => new + { + Id = c.Long(nullable: false, identity: true), + ParameterId = c.Long(nullable: false), + DovominId = c.String(nullable: false, maxLength: 128), + StringValue = c.String(), + NumericValue = c.Decimal(precision: 18, scale: 2), + }) + .PrimaryKey(t => t.Id) + .ForeignKey("dbo.Dovomin", t => t.DovominId) + .ForeignKey("dbo.Parameters", t => t.ParameterId, cascadeDelete: true) + .Index(t => new { t.ParameterId, t.DovominId }, unique: true, name: "IX_DovominParameterUniqueIndex") + .Index(t => t.DovominId); + + CreateTable( + "dbo.Parameters", + c => new + { + Id = c.Long(nullable: false, identity: true), + Name = c.String(nullable: false), + Moscow = c.Boolean(nullable: false), + DisplayMethod = c.Byte(nullable: false), + DisplayFormat = c.String(maxLength: 50), + GroupName = c.String(nullable: false), + CommentAvalin = c.String(maxLength: 140), + CommentDovomin = c.String(maxLength: 140), + ParameterValueId = c.String(maxLength: 50), + BasePoint = c.Int(nullable: false), + }) + .PrimaryKey(t => t.Id); + + 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); + + CreateTable( + "dbo.Jobs", + c => new + { + Id = c.Long(nullable: false, identity: true), + AvalinId = c.String(nullable: false, maxLength: 128), + CreateDate = c.DateTime(nullable: false), + ExpireDate = c.DateTime(nullable: false), + Description = c.String(), + ResumeType = c.Byte(nullable: false), + ContactPersonName = c.String(), + ContactPersonPhone = c.String(), + ContactPersonEMail = c.String(), + ShowCompanyName = c.Boolean(nullable: false), + ShowCompanyLogo = c.Boolean(nullable: false), + IsFullTime = c.Boolean(nullable: false), + }) + .PrimaryKey(t => t.Id) + .ForeignKey("dbo.Avalin", t => t.AvalinId) + .Index(t => t.AvalinId); + + CreateTable( + "dbo.AspNetUserLogins", + c => new + { + LoginProvider = c.String(nullable: false, maxLength: 128), + ProviderKey = c.String(nullable: false, maxLength: 128), + UserId = c.String(nullable: false, maxLength: 128), + }) + .PrimaryKey(t => new { t.LoginProvider, t.ProviderKey, t.UserId }) + .ForeignKey("dbo.AspNetUsers", t => t.UserId, cascadeDelete: true) + .Index(t => t.UserId); + + CreateTable( + "dbo.AspNetUserRoles", + c => new + { + UserId = c.String(nullable: false, maxLength: 128), + RoleId = c.String(nullable: false, maxLength: 128), + }) + .PrimaryKey(t => new { t.UserId, t.RoleId }) + .ForeignKey("dbo.AspNetRoles", t => t.RoleId, cascadeDelete: true) + .ForeignKey("dbo.AspNetUsers", t => t.UserId, cascadeDelete: true) + .Index(t => t.UserId) + .Index(t => t.RoleId); + + CreateTable( + "dbo.ParameterValues", + c => new + { + GroupKey = c.String(nullable: false, maxLength: 50), + Value = c.String(nullable: false, maxLength: 50), + NumbericValue = c.Decimal(nullable: false, precision: 18, scale: 2), + }) + .PrimaryKey(t => new { t.GroupKey, t.Value }) + .Index(t => t.GroupKey); + + CreateTable( + "dbo.AspNetRoles", + c => new + { + Id = c.String(nullable: false, maxLength: 128), + Name = c.String(nullable: false, maxLength: 256), + }) + .PrimaryKey(t => t.Id) + .Index(t => t.Name, unique: true, name: "RoleNameIndex"); + + CreateTable( + "dbo.Dovomin", + c => new + { + Id = c.String(nullable: false, maxLength: 128), + FirstName = c.String(), + LastName = c.String(), + BirthDate = c.DateTime(), + IsFulltime = c.Boolean(nullable: false), + IsPartTime = c.Boolean(nullable: false), + Description = c.String(), + EnglishResume = c.String(), + PersianResume = c.String(), + }) + .PrimaryKey(t => t.Id) + .ForeignKey("dbo.AspNetUsers", t => t.Id) + .Index(t => t.Id); + + CreateTable( + "dbo.Avalin", + c => new + { + Id = c.String(nullable: false, maxLength: 128), + CompanyName = c.String(nullable: false), + NationalId = c.String(maxLength: 12), + RegisterId = c.String(maxLength: 10), + Address = c.String(), + CompanyPhoneNumber = c.String(), + EMail = c.String(), + }) + .PrimaryKey(t => t.Id) + .ForeignKey("dbo.AspNetUsers", t => t.Id) + .Index(t => t.Id); + + } + + public override void Down() + { + DropForeignKey("dbo.Avalin", "Id", "dbo.AspNetUsers"); + DropForeignKey("dbo.Dovomin", "Id", "dbo.AspNetUsers"); + DropForeignKey("dbo.AspNetUserRoles", "UserId", "dbo.AspNetUsers"); + DropForeignKey("dbo.AspNetUserLogins", "UserId", "dbo.AspNetUsers"); + DropForeignKey("dbo.AspNetUserClaims", "UserId", "dbo.AspNetUsers"); + DropForeignKey("dbo.AspNetUserRoles", "RoleId", "dbo.AspNetRoles"); + DropForeignKey("dbo.JobParameters", "ParameterId", "dbo.Parameters"); + DropForeignKey("dbo.JobParameters", "JobId", "dbo.Jobs"); + DropForeignKey("dbo.Jobs", "AvalinId", "dbo.Avalin"); + DropForeignKey("dbo.DovominJobs", "JobId", "dbo.Jobs"); + DropForeignKey("dbo.DovominParameters", "ParameterId", "dbo.Parameters"); + DropForeignKey("dbo.DovominParameters", "DovominId", "dbo.Dovomin"); + DropForeignKey("dbo.DovominJobs", "DovominId", "dbo.Dovomin"); + DropIndex("dbo.Avalin", new[] { "Id" }); + DropIndex("dbo.Dovomin", new[] { "Id" }); + DropIndex("dbo.AspNetRoles", "RoleNameIndex"); + DropIndex("dbo.ParameterValues", new[] { "GroupKey" }); + DropIndex("dbo.AspNetUserRoles", new[] { "RoleId" }); + DropIndex("dbo.AspNetUserRoles", new[] { "UserId" }); + DropIndex("dbo.AspNetUserLogins", new[] { "UserId" }); + DropIndex("dbo.Jobs", new[] { "AvalinId" }); + DropIndex("dbo.JobParameters", new[] { "JobId" }); + DropIndex("dbo.JobParameters", "IX_JobParameterUniqueIndex"); + DropIndex("dbo.DovominParameters", new[] { "DovominId" }); + DropIndex("dbo.DovominParameters", "IX_DovominParameterUniqueIndex"); + DropIndex("dbo.AspNetUserClaims", new[] { "UserId" }); + DropIndex("dbo.AspNetUsers", "UserNameIndex"); + DropIndex("dbo.DovominJobs", new[] { "JobId" }); + DropIndex("dbo.DovominJobs", "IX_DovominJobUniqueIndex"); + DropTable("dbo.Avalin"); + DropTable("dbo.Dovomin"); + DropTable("dbo.AspNetRoles"); + DropTable("dbo.ParameterValues"); + DropTable("dbo.AspNetUserRoles"); + DropTable("dbo.AspNetUserLogins"); + DropTable("dbo.Jobs"); + DropTable("dbo.JobParameters"); + DropTable("dbo.Parameters"); + DropTable("dbo.DovominParameters"); + DropTable("dbo.AspNetUserClaims"); + DropTable("dbo.AspNetUsers"); + DropTable("dbo.DovominJobs"); + } + } +} diff --git a/Sevomin.Models/Migrations/201409010546480_basepoint.resx b/Sevomin.Models/Migrations/201409010546480_basepoint.resx new file mode 100644 index 0000000..b64e8a5 --- /dev/null +++ b/Sevomin.Models/Migrations/201409010546480_basepoint.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 e812c9d..4678af3 100644 --- a/Sevomin.Models/Parameter.cs +++ b/Sevomin.Models/Parameter.cs @@ -1,50 +1,51 @@ -using System.Collections.Generic; -using System.ComponentModel.DataAnnotations; -using System.ComponentModel.DataAnnotations.Schema; -using System.Linq; - - -namespace Sevomin.Models -{ - public class Parameter - { - [Key] - public long Id { get; set; } - - [Required] - public string Name { get; set; } - - [Required] - public bool Moscow { get; set; } - - [Required] - public byte DisplayMethod { get; set; } - - [StringLength(50)] - public string DisplayFormat { get; set; } - - [Required] - public string GroupName { get; set; } - - [StringLength(140)] - public string CommentAvalin { get; set; } - - [StringLength(140)] - public string CommentDovomin { get; set; } - - [StringLength(50)] - public string ParameterValueId { get; set; } - - [NotMapped] - public IQueryable ParameterValues - { - get - { - return SevominDbContext.Current.ParameterValues.Where(x => x.GroupKey == ParameterValueId); - } - } - - public virtual ICollection JobParameters { get; set; } - public virtual ICollection DovominParameters { get; set; } - } -} +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using System.Linq; + + +namespace Sevomin.Models +{ + public class Parameter + { + [Key] + public long Id { get; set; } + + [Required] + public string Name { get; set; } + + [Required] + public bool Moscow { get; set; } + + [Required] + public byte DisplayMethod { get; set; } + + [StringLength(50)] + public string DisplayFormat { get; set; } + + [Required] + public string GroupName { get; set; } + + [StringLength(140)] + public string CommentAvalin { get; set; } + + [StringLength(140)] + public string CommentDovomin { get; set; } + + [StringLength(50)] + public string ParameterValueId { get; set; } + + [NotMapped] + public IQueryable ParameterValues + { + get + { + return SevominDbContext.Current.ParameterValues.Where(x => x.GroupKey == ParameterValueId); + } + } + public int BasePoint { get; set; } + + public virtual ICollection JobParameters { get; set; } + public virtual ICollection DovominParameters { get; set; } + } +} diff --git a/Sevomin.Models/Sevomin.Models.csproj b/Sevomin.Models/Sevomin.Models.csproj index 20bfa2e..effe160 100644 --- a/Sevomin.Models/Sevomin.Models.csproj +++ b/Sevomin.Models/Sevomin.Models.csproj @@ -1,141 +1,150 @@ - - - - - Debug - AnyCPU - {CB5D89BC-10D1-44D6-857B-A94B5CFCFB11} - Library - Properties - Sevomin.Models - Sevomin.Models - v4.5.1 - 512 - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - False - ..\packages\EntityFramework.6.1.0\lib\net45\EntityFramework.dll - - - False - ..\packages\EntityFramework.6.1.0\lib\net45\EntityFramework.SqlServer.dll - - - ..\packages\FluentScheduler.3.1.42\lib\net40\FluentScheduler.dll - - - ..\packages\MailChimp.NET.1.1.0.2\lib\net40\MailChimp.dll - - - False - ..\packages\Microsoft.AspNet.Identity.Core.2.0.0\lib\net45\Microsoft.AspNet.Identity.Core.dll - - - False - ..\packages\Microsoft.AspNet.Identity.EntityFramework.2.0.0\lib\net45\Microsoft.AspNet.Identity.EntityFramework.dll - - - ..\packages\Microsoft.Owin.2.1.0\lib\net45\Microsoft.Owin.dll - - - ..\packages\Microsoft.Owin.Host.SystemWeb.2.1.0\lib\net45\Microsoft.Owin.Host.SystemWeb.dll - - - ..\packages\Owin.1.0\lib\net40\Owin.dll - - - ..\packages\ServiceStack.Text.3.9.71\lib\net35\ServiceStack.Text.dll - - - ..\packages\ShortGuid.1.0.0\lib\net45\ShortGuid.dll - - - - - - - False - ..\packages\Microsoft.AspNet.Mvc.5.0.0\lib\net45\System.Web.Mvc.dll - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + Debug + AnyCPU + {CB5D89BC-10D1-44D6-857B-A94B5CFCFB11} + Library + Properties + Sevomin.Models + Sevomin.Models + v4.5.1 + 512 + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + False + ..\packages\EntityFramework.6.1.0\lib\net45\EntityFramework.dll + + + False + ..\packages\EntityFramework.6.1.0\lib\net45\EntityFramework.SqlServer.dll + + + ..\packages\FluentScheduler.3.1.42\lib\net40\FluentScheduler.dll + + + ..\packages\MailChimp.NET.1.1.0.2\lib\net40\MailChimp.dll + + + False + ..\packages\Microsoft.AspNet.Identity.Core.2.0.0\lib\net45\Microsoft.AspNet.Identity.Core.dll + + + False + ..\packages\Microsoft.AspNet.Identity.EntityFramework.2.0.0\lib\net45\Microsoft.AspNet.Identity.EntityFramework.dll + + + ..\packages\Microsoft.Owin.2.1.0\lib\net45\Microsoft.Owin.dll + + + ..\packages\Microsoft.Owin.Host.SystemWeb.2.1.0\lib\net45\Microsoft.Owin.Host.SystemWeb.dll + + + ..\packages\Owin.1.0\lib\net40\Owin.dll + + + ..\packages\ServiceStack.Text.3.9.71\lib\net35\ServiceStack.Text.dll + + + ..\packages\ShortGuid.1.0.0\lib\net45\ShortGuid.dll + + + + + + + False + ..\packages\Microsoft.AspNet.Mvc.5.0.0\lib\net45\System.Web.Mvc.dll + + + + + + + + + + + + + + + + + + 201409010546480_basepoint.cs + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 201409010546480_basepoint.cs + + + + \ No newline at end of file diff --git a/Sevomin.Models/SevominDbContext.cs b/Sevomin.Models/SevominDbContext.cs index c9663af..5c98655 100644 --- a/Sevomin.Models/SevominDbContext.cs +++ b/Sevomin.Models/SevominDbContext.cs @@ -1,46 +1,46 @@ -using Microsoft.AspNet.Identity.EntityFramework; -using System; -using System.Data.Entity; -using System.Web; - -namespace Sevomin.Models -{ - public class SevominDbContext : IdentityDbContext - { - #region Singleton - private static object locker = new object(); - - public SevominDbContext() : base("SevominConnectionString") { } - - public static SevominDbContext Current - { - get - { - lock (locker) - { - if (HttpContext.Current.Items["DataContexMember"] != null && - HttpContext.Current.Items["DataContexMember"] is SevominDbContext) - return (SevominDbContext)HttpContext.Current.Items["DataContexMember"]; - RenewMember(); - return (SevominDbContext)HttpContext.Current.Items["DataContexMember"]; - } - } - - } - - public static void RenewMember() - { - SevominDbContext pe = - new SevominDbContext(); - HttpContext.Current.Items["DataContexMember"] = pe; - GC.Collect(); - } - - #endregion - - public DbSet Parameters { get; set; } - public DbSet ParameterValues { get; set; } - public DbSet Jobs { get; set; } - public DbSet DovominJobs { get; set; } - } -} +using Microsoft.AspNet.Identity.EntityFramework; +using System; +using System.Data.Entity; +using System.Web; + +namespace Sevomin.Models +{ + public class SevominDbContext : IdentityDbContext + { + #region Singleton + private static object locker = new object(); + + public SevominDbContext() : base("SevominConnectionString") { } + + public static SevominDbContext Current + { + get + { + lock (locker) + { + if (HttpContext.Current.Items["DataContexMember"] != null && + HttpContext.Current.Items["DataContexMember"] is SevominDbContext) + return (SevominDbContext)HttpContext.Current.Items["DataContexMember"]; + RenewMember(); + return (SevominDbContext)HttpContext.Current.Items["DataContexMember"]; + } + } + + } + + public static void RenewMember() + { + SevominDbContext pe = + new SevominDbContext(); + HttpContext.Current.Items["DataContexMember"] = pe; + GC.Collect(); + } + + #endregion + + public DbSet Parameters { get; set; } + public DbSet ParameterValues { get; set; } + public DbSet Jobs { get; set; } + public DbSet DovominJobs { get; set; } + } +}