diff --git a/CaseAccounting/CaseAccountingContracts/ViewModels/RoleViewModel.cs b/CaseAccounting/CaseAccountingContracts/ViewModels/RoleViewModel.cs new file mode 100644 index 0000000..c419630 --- /dev/null +++ b/CaseAccounting/CaseAccountingContracts/ViewModels/RoleViewModel.cs @@ -0,0 +1,18 @@ +using CaseAccountingDataModels.Models; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace CaseAccountingContracts.ViewModels +{ + public class RoleViewModel : IRoleModel + { + public int Id { get; set; } + + [DisplayName("Название роли")] + public string Name { get; set; } = string.Empty; + } +} diff --git a/CaseAccounting/CaseAccountingDataBaseImplement/CaseAccountingDataBaseImplement.csproj b/CaseAccounting/CaseAccountingDataBaseImplement/CaseAccountingDataBaseImplement.csproj index f2c9493..c66d80b 100644 --- a/CaseAccounting/CaseAccountingDataBaseImplement/CaseAccountingDataBaseImplement.csproj +++ b/CaseAccounting/CaseAccountingDataBaseImplement/CaseAccountingDataBaseImplement.csproj @@ -8,7 +8,11 @@ - + + + + + diff --git a/CaseAccounting/CaseAccountingDataBaseImplement/Models/Case.cs b/CaseAccounting/CaseAccountingDataBaseImplement/Models/Case.cs new file mode 100644 index 0000000..91d5aad --- /dev/null +++ b/CaseAccounting/CaseAccountingDataBaseImplement/Models/Case.cs @@ -0,0 +1,91 @@ +using CaseAccountingContracts.BindingModels; +using CaseAccountingContracts.ViewModels; +using CaseAccountingDataModels.Models; +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using System.Linq; +using System.Net; +using System.Text; +using System.Threading.Tasks; + +namespace CaseAccountingDataBaseImplement.Models +{ + public class Case : ICaseModel + { + public int Id { get; set; } + + [Required] + public string Name { get; set; } = string.Empty; + + [Required] + public string Applicant { get; set; } = string.Empty; + + [Required] + public string Defendant { get; set; } = string.Empty; + + [Required] + public string Annotation { get; set; } = string.Empty; + + [Required] + public DateTime Date { get; set; } + + [Required] + public int SpecializationId { get; set; } + + [Required] + public int UserId { get; set; } + + [ForeignKey("CaseId")] + public virtual List Hearings { get; set; } = new(); + + [ForeignKey("CaseId")] + public virtual List Lawyers { get; set; } = new(); + + [ForeignKey("CaseId")] + public virtual List Deals { get; set; } = new(); + + public static Case? Create(CaseBindingModel model) + { + if (model == null) + { + return null; + } + return new Case() + { + Id = model.Id, + Name = model.Name, + Applicant = model.Applicant, + Defendant = model.Defendant, + Annotation = model.Annotation, + Date = model.Date, + SpecializationId = model.SpecializationId, + UserId = model.UserId + }; + } + + public void Update(CaseBindingModel model) + { + if (model == null) + { + return; + } + Name = model.Name; + Annotation = model.Annotation; + Date = model.Date; + } + + public CaseViewModel GetViewModel => new() + { + Id = Id, + Name = Name, + Applicant = Applicant, + Defendant = Defendant, + Annotation = Annotation, + Date = Date, + SpecializationId = SpecializationId, + UserId = UserId + }; + } +} diff --git a/CaseAccounting/CaseAccountingDataBaseImplement/Models/CaseDeal.cs b/CaseAccounting/CaseAccountingDataBaseImplement/Models/CaseDeal.cs new file mode 100644 index 0000000..be1734f --- /dev/null +++ b/CaseAccounting/CaseAccountingDataBaseImplement/Models/CaseDeal.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace CaseAccountingDataBaseImplement.Models +{ + public class CaseDeal + { + public int Id { get; set; } + + [Required] + public int CaseId { get; set; } + public virtual Case Case { get; set; } = new(); + + [Required] + public int DealId { get; set; } + public virtual Deal Deal { get; set; } = new(); + } +} diff --git a/CaseAccounting/CaseAccountingDataBaseImplement/Models/CaseLawyer.cs b/CaseAccounting/CaseAccountingDataBaseImplement/Models/CaseLawyer.cs new file mode 100644 index 0000000..f274a4a --- /dev/null +++ b/CaseAccounting/CaseAccountingDataBaseImplement/Models/CaseLawyer.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace CaseAccountingDataBaseImplement.Models +{ + public class CaseLawyer + { + public int Id { get; set; } + + [Required] + public int CaseId { get; set; } + public virtual Case Case { get; set; } = new(); + + [Required] + public int LawyerId { get; set; } + public virtual Lawyer Lawyer { get; set; } = new(); + } +} diff --git a/CaseAccounting/CaseAccountingDataBaseImplement/Models/Contract.cs b/CaseAccounting/CaseAccountingDataBaseImplement/Models/Contract.cs new file mode 100644 index 0000000..7438ced --- /dev/null +++ b/CaseAccounting/CaseAccountingDataBaseImplement/Models/Contract.cs @@ -0,0 +1,73 @@ +using CaseAccountingContracts.BindingModels; +using CaseAccountingContracts.ViewModels; +using CaseAccountingDataModels.Models; +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using System.Diagnostics; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace CaseAccountingDataBaseImplement.Models +{ + public class Contract : IContractModel + { + public int Id { get; set; } + + [Required] + public string Service { get; set; } = string.Empty; + + [Required] + public decimal Coast { get; set; } + + [Required] + public DateTime Date { get; set; } + + [Required] + public int UserId { get; set; } + + [ForeignKey("ContractId")] + public virtual List LawyerContracts { get; set; } = new(); + + [ForeignKey("ContractId")] + public virtual List DealContracts { get; set; } = new(); + + public static Contract? Create(ContractBindingModel? model) + { + if (model == null) + { + return null; + } + return new Contract() + { + Id = model.Id, + Service = model.Service, + Coast = model.Coast, + Date = model.Date, + UserId = model.UserId + }; + } + + public void Update(ContractBindingModel? model) + { + if (model == null) + { + return; + } + Service = model.Service; + Coast = model.Coast; + Date = model.Date; + } + + public ContractViewModel GetViewModel => new() + { + Id = Id, + Service = Service, + Coast = Coast, + Date = Date, + UserId = UserId + }; + } +} diff --git a/CaseAccounting/CaseAccountingDataBaseImplement/Models/Deal.cs b/CaseAccounting/CaseAccountingDataBaseImplement/Models/Deal.cs new file mode 100644 index 0000000..ea1d6d5 --- /dev/null +++ b/CaseAccounting/CaseAccountingDataBaseImplement/Models/Deal.cs @@ -0,0 +1,72 @@ +using CaseAccountingContracts.BindingModels; +using CaseAccountingContracts.ViewModels; +using CaseAccountingDataModels.Models; +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; + +namespace CaseAccountingDataBaseImplement.Models +{ + public class Deal : IDealModel + { + public int Id { get; set; } + + [Required] + public string Subject { get; set; } = string.Empty; + + [Required] + public string Responsibilities { get; set; } = string.Empty; + + [Required] + public DateTime Date { get; set; } + + [Required] + public int UserId { get; set; } + + [ForeignKey("DealId")] + public virtual List CaseDeals { get; set; } = new(); + + [ForeignKey("DealId")] + public virtual List Contracts { get; set; } = new(); + + public static Deal? Create(DealBindingModel? model) + { + if (model == null) + { + return null; + } + return new Deal() + { + Id = model.Id, + Subject = model.Subject, + Responsibilities = model.Responsibilities, + Date = model.Date, + UserId = model.UserId, + }; + } + + public void Update(DealBindingModel? model) + { + if (model == null) + { + return; + } + Subject = model.Subject; + Responsibilities = model.Responsibilities; + Date = model.Date; + } + + public DealViewModel GetViewModel => new() + { + Id = Id, + Subject = Subject, + Responsibilities = Responsibilities, + Date = Date, + UserId = UserId + }; + } +} diff --git a/CaseAccounting/CaseAccountingDataBaseImplement/Models/DealContract.cs b/CaseAccounting/CaseAccountingDataBaseImplement/Models/DealContract.cs new file mode 100644 index 0000000..0b55ee2 --- /dev/null +++ b/CaseAccounting/CaseAccountingDataBaseImplement/Models/DealContract.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace CaseAccountingDataBaseImplement.Models +{ + public class DealContract + { + public int Id { get; set; } + + [Required] + public int DealId { get; set; } + public virtual Deal Deal { get; set; } = new(); + + [Required] + public int ContractId { get; set; } + public virtual Contract Contract { get; set; } = new(); + } +} diff --git a/CaseAccounting/CaseAccountingDataBaseImplement/Models/Hearing.cs b/CaseAccounting/CaseAccountingDataBaseImplement/Models/Hearing.cs new file mode 100644 index 0000000..21af1c6 --- /dev/null +++ b/CaseAccounting/CaseAccountingDataBaseImplement/Models/Hearing.cs @@ -0,0 +1,67 @@ +using CaseAccountingContracts.BindingModels; +using CaseAccountingContracts.ViewModels; +using CaseAccountingDataModels.Models; +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Globalization; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace CaseAccountingDataBaseImplement.Models +{ + public class Hearing : IHearingModel + { + public int Id { get; set; } + + [Required] + public string Information { get; set; } = string.Empty; + + [Required] + public DateTime Date { get; set; } + + [Required] + public int CaseId { get; set; } + public virtual Case Case { get; set; } = new(); + + [Required] + public int UserId { get; set; } + public virtual User User { get; set; } = new(); + + public static Hearing? Create (HearingBindingModel? model) + { + if (model == null) + { + return null; + } + return new Hearing() + { + Id = model.Id, + Information = model.Information, + Date = model.Date, + CaseId = model.CaseId, + UserId = model.UserId + }; + } + + public void Update (HearingBindingModel? model) + { + if (model == null) + { + return; + } + Information = model.Information; + Date = model.Date; + } + + public HearingViewModel GetViewModel => new() + { + Id = Id, + Information = Information, + Date = Date, + CaseId = CaseId, + UserId = UserId + }; + } +} diff --git a/CaseAccounting/CaseAccountingDataBaseImplement/Models/Lawyer.cs b/CaseAccounting/CaseAccountingDataBaseImplement/Models/Lawyer.cs new file mode 100644 index 0000000..f97444c --- /dev/null +++ b/CaseAccounting/CaseAccountingDataBaseImplement/Models/Lawyer.cs @@ -0,0 +1,86 @@ +using CaseAccountingContracts.BindingModels; +using CaseAccountingContracts.ViewModels; +using CaseAccountingDataModels.Models; +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; + +namespace CaseAccountingDataBaseImplement.Models +{ + public class Lawyer : ILawyerModel + { + public int Id { get; set; } + + [Required] + public string Name { get; set; } = string.Empty; + + [Required] + public string Surname { get; set; } = string.Empty; + + [Required] + public string Patronymic { get; set; } = string.Empty; + + [Required] + public int Experience { get; set; } + + [Required] + public int SpecializationId { get; set; } + public virtual Specialization Specialization { get; set; } = new(); + + [Required] + public int UserId { get; set; } + public virtual User User { get; set; } = new(); + + [ForeignKey("LawyerId")] + public virtual List CaseLawyers { get; set; } = new(); + + [ForeignKey("LawyerId")] + public virtual List Contracts { get; set; } = new(); + + public static Lawyer? Create(LawyerBindingModel? model) + { + if (model == null) + { + return null; + } + return new Lawyer() + { + Id = model.Id, + Name = model.Name, + Surname = model.Surname, + Patronymic = model.Patronymic, + Experience = model.Experience, + SpecializationId = model.SpecializationId, + UserId = model.UserId + }; + } + + public void Update(LawyerBindingModel? model) + { + if (model == null) + { + return; + } + Name = model.Name; + Surname = model.Surname; + Patronymic = model.Patronymic; + Experience = model.Experience; + SpecializationId = model.SpecializationId; + } + + public LawyerViewModel GetViewModel => new() + { + Id = Id, + Name = Name, + Surname = Surname, + Patronymic = Patronymic, + Experience = Experience, + SpecializationId = SpecializationId, + UserId = UserId + }; + } +} diff --git a/CaseAccounting/CaseAccountingDataBaseImplement/Models/LawyerContracts.cs b/CaseAccounting/CaseAccountingDataBaseImplement/Models/LawyerContracts.cs new file mode 100644 index 0000000..187e68d --- /dev/null +++ b/CaseAccounting/CaseAccountingDataBaseImplement/Models/LawyerContracts.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace CaseAccountingDataBaseImplement.Models +{ + public class LawyerContracts + { + public int Id { get; set; } + + [Required] + public int LawyerId { get; set; } + public virtual Lawyer Lawyer { get; set; } = new(); + + [Required] + public int ContractId { get; set; } + public virtual Contract Contract { get; set; } = new(); + } +} diff --git a/CaseAccounting/CaseAccountingDataBaseImplement/Models/Role.cs b/CaseAccounting/CaseAccountingDataBaseImplement/Models/Role.cs new file mode 100644 index 0000000..2c80c8b --- /dev/null +++ b/CaseAccounting/CaseAccountingDataBaseImplement/Models/Role.cs @@ -0,0 +1,53 @@ +using CaseAccountingContracts.BindingModels; +using CaseAccountingContracts.ViewModels; +using CaseAccountingDataModels.Models; +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using System.Linq; +using System.Net; +using System.Text; +using System.Threading.Tasks; +using System.Threading.Tasks.Dataflow; + +namespace CaseAccountingDataBaseImplement.Models +{ + public class Role : IRoleModel + { + public int Id { get; set; } + + [Required] + public string Name { get; set; } = string.Empty; + + [ForeignKey("RoleId")] + public virtual List Users { get; set; } = new(); + + public static Role? Create(RoleBindingModel? model) + { + if (model == null) + { + return null; + } + return new Role() + { + Id = model.Id, + Name = model.Name, + }; + } + public void Update(RoleBindingModel? model) + { + if (model == null) + { + return; + } + Name = model.Name; + } + + public RoleViewModel GetViewModel => new() + { + Id = Id, + Name = Name, + }; + } +} diff --git a/CaseAccounting/CaseAccountingDataBaseImplement/Models/Specialization.cs b/CaseAccounting/CaseAccountingDataBaseImplement/Models/Specialization.cs new file mode 100644 index 0000000..31f373b --- /dev/null +++ b/CaseAccounting/CaseAccountingDataBaseImplement/Models/Specialization.cs @@ -0,0 +1,63 @@ +using CaseAccountingContracts.BindingModels; +using CaseAccountingContracts.ViewModels; +using CaseAccountingDataModels.Models; +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using System.Linq; +using System.Net; +using System.Security.Cryptography.X509Certificates; +using System.Text; +using System.Threading.Tasks; + +namespace CaseAccountingDataBaseImplement.Models +{ + public class Specialization : ISpecializationModel + { + public int Id { get; set; } + + [Required] + public string Name { get; set; } = string.Empty; + + [Required] + public int UserId { get; set; } + public virtual User User { get; set; } = new(); + + [ForeignKey("SpecializationId")] + public virtual List Lawyers { get; set; } = new(); + + [ForeignKey("SpecializationId")] + public virtual List Cases { get; set; } = new(); + + public static Specialization? Create (SpecializationBindingModel? model) + { + if (model == null) + { + return null; + } + return new Specialization() + { + Id = model.Id, + Name = model.Name, + UserId = model.UserId, + }; + } + + public void Update(SpecializationBindingModel? model) + { + if (model == null) + { + return; + } + Name = model.Name; + } + + public SpecializationViewModel GetViewModel => new() + { + Id = Id, + Name = Name, + UserId = UserId + }; + } +} diff --git a/CaseAccounting/CaseAccountingDataBaseImplement/Models/User.cs b/CaseAccounting/CaseAccountingDataBaseImplement/Models/User.cs new file mode 100644 index 0000000..d0a40cb --- /dev/null +++ b/CaseAccounting/CaseAccountingDataBaseImplement/Models/User.cs @@ -0,0 +1,78 @@ +using CaseAccountingContracts.BindingModels; +using CaseAccountingContracts.ViewModels; +using CaseAccountingDataModels.Models; +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; + +namespace CaseAccountingDataBaseImplement.Models +{ + public class User : IUserModel + { + public int Id { get; set; } + + [Required] + public string Login { get; set; } = string.Empty; + + [Required] + public string Password { get; set; } = string.Empty; + + [Required] + public int RoleId { get; set; } + public virtual Role Role { get; set; } = new(); + + [ForeignKey("UserId")] + public virtual List Hearings { get; set; } = new(); + + [ForeignKey("UserId")] + public virtual List Cases { get; set; } = new(); + + [ForeignKey("UserId")] + public virtual List Specializations { get; set; } = new(); + + [ForeignKey("UserId")] + public virtual List Lawyers { get; set; } = new(); + + [ForeignKey("UserId")] + public virtual List Deals { get; set; } = new(); + + [ForeignKey("UserId")] + public virtual List Contracts { get; set; } = new(); + + public static User? Create(UserBindingModel? model) + { + if (model == null) + { + return null; + } + return new User() + { + Id = model.Id, + Login = model.Login, + Password = model.Password, + RoleId = model.RoleId + }; + } + + public void Update(UserBindingModel? model) + { + if (model == null) + { + return; + } + Password = model.Password; + } + + public UserViewModel GetViewModel => new() + { + Id = Id, + Login = Login, + Password = Password, + RoleId = RoleId, + }; + } +}