示例#1
0
 public List <ContractViewModel> GetFullList()
 {
     using (var context = new ComputerRepairDatabase())
     {
         return(context.Contract
                .Include(rec => rec.Employee)
                .Include(rec => rec.ServicesContracts)
                .ThenInclude(rec => rec.Services)
                .Include(rec => rec.MaterialsContracts)
                .ThenInclude(rec => rec.Materials)
                .Include(rec => rec.Payment)
                .Include(rec => rec.CustomerBase)
                .Select(rec => new ContractViewModel
         {
             Id = rec.Id,
             DateOfConclusion = rec.DateOfConclusion,
             CustomerBaseId = rec.CustomerBase.Id,
             EmployeeId = rec.Employee.Id,
             CustomerBase = rec.CustomerBase.Surname,
             Employee = rec.Employee.Surname,
             Payment = rec.Payment.Summ,
             Materials = rec.MaterialsContracts
                         .Select(rc => new MaterialsViewModel {
                 Id = rc.Materials.Id, Name = rc.Materials.Name, Price = rc.Materials.Price
             })
                         .ToList(),
             Services = rec.ServicesContracts
                        .Select(rc => new ServicesViewModel {
                 Id = rc.Services.Id, Name = rc.Services.Name, Price = rc.Services.Price
             })
                        .ToList()
         })
                .ToList());
     }
 }
示例#2
0
 public void Insert(CustomerBaseBindingModel model)
 {
     using (var context = new ComputerRepairDatabase())
     {
         context.CustomerBase.Add(CreateModel(model, new CustomerBase()));
         context.SaveChanges();
     }
 }
示例#3
0
 public void Insert(EmployeeBindingModel model)
 {
     using (var context = new ComputerRepairDatabase())
     {
         context.Employee.Add(CreateModel(model, new Employee()));
         context.SaveChanges();
     }
 }
示例#4
0
 public void Insert(ServicesBindingModel model)
 {
     using (var context = new ComputerRepairDatabase())
     {
         context.Services.Add(CreateModel(model, new Services()));
         context.SaveChanges();
     }
 }
示例#5
0
 public void Insert(PaymentBindingModel model)
 {
     using (var context = new ComputerRepairDatabase())
     {
         context.Payment.Add(CreateModel(model, new Payment()));
         context.SaveChanges();
     }
 }
示例#6
0
        private Contract CreateModel(ContractBindingModel model, Contract contract, ComputerRepairDatabase context)
        {
            contract.CustomerBaseid   = model.CustomerBaseId;
            contract.Employeeid       = model.EmployeeId;
            contract.Paymentid        = model.PaymentId;
            contract.DateOfConclusion = model.DateOfConclusion;
            if (contract.Id == 0)
            {
                context.Contract.Add(contract);
                context.SaveChanges();
            }
            if (model.Id.HasValue)
            {
                List <ServicesContract> servicesContract = context.ServicesContract.Where(rec => rec.Contractid == model.Id.Value).ToList();
                // удалили те, которых нет в модели
                context.ServicesContract.RemoveRange(servicesContract.Where(rec => !model.ServicesContract.Contains(rec.Servicesid)).ToList());
                context.SaveChanges();
                // обновили количество у существующих записей
                foreach (var updateServices in servicesContract)
                {
                    model.ServicesContract.Remove(updateServices.Servicesid);
                }
                List <MaterialsContract> materialsContract = context.MaterialsContract.Where(rec => rec.Contractid == model.Id.Value).ToList();
                // удалили те, которых нет в модели
                context.MaterialsContract.RemoveRange(materialsContract.Where(rec => !model.MaterialsContract.Contains(rec.Materialsid)).ToList());
                context.SaveChanges();
                // обновили количество у существующих записей
                foreach (var updateMaterials in materialsContract)
                {
                    model.MaterialsContract.Remove(updateMaterials.Materialsid);
                }
                context.SaveChanges();
            }
            // добавили новые
            foreach (var pc in model.ServicesContract)
            {
                context.ServicesContract.Add(new ServicesContract
                {
                    Contractid = contract.Id,
                    Servicesid = pc
                });
                context.SaveChanges();
            }
            foreach (var pc in model.MaterialsContract)
            {
                context.MaterialsContract.Add(new MaterialsContract
                {
                    Contractid  = contract.Id,
                    Materialsid = pc
                });
                context.SaveChanges();
            }

            return(contract);
        }
示例#7
0
 public List <ServicesViewModel> GetFullList()
 {
     using (var context = new ComputerRepairDatabase())
     {
         return(context.Materials.Select(rec => new ServicesViewModel
         {
             Id = rec.Id,
             Name = rec.Name,
             Price = rec.Price
         }).ToList());
     }
 }
示例#8
0
 public List <PaymentViewModel> GetFullList()
 {
     using (var context = new ComputerRepairDatabase())
     {
         return(context.Payment.Select(rec => new PaymentViewModel
         {
             Id = rec.Id,
             DateOfPayment = rec.DateOfPayment,
             Summ = rec.Summ
         }).ToList());
     }
 }
示例#9
0
 public void Update(ServicesBindingModel model)
 {
     using (var context = new ComputerRepairDatabase())
     {
         var element = context.Services.FirstOrDefault(rec => rec.Id == model.Id);
         if (element == null)
         {
             throw new Exception("Элемент не найден");
         }
         CreateModel(model, element);
         context.SaveChanges();
     }
 }
示例#10
0
 public List <CustomerBaseViewModel> GetFullList()
 {
     using (var context = new ComputerRepairDatabase())
     {
         return(context.Employee.Select(rec => new CustomerBaseViewModel
         {
             Id = rec.Id,
             Surname = rec.Surname,
             Name = rec.Name,
             Lastname = rec.Lastname,
             DateOfBirthday = rec.DateOfBirthday,
         }).ToList());
     }
 }
示例#11
0
 public void Delete(ContractBindingModel model)
 {
     using (var context = new ComputerRepairDatabase())
     {
         var contract = context.Contract.FirstOrDefault(rec => rec.Id == model.Id);
         if (contract != null)
         {
             context.Contract.Remove(contract);
             context.SaveChanges();
         }
         else
         {
             throw new Exception("Заказ не найден");
         }
     }
 }
示例#12
0
 public void Delete(CustomerBaseBindingModel model)
 {
     using (var context = new ComputerRepairDatabase())
     {
         var element = context.CustomerBase.FirstOrDefault(rec => rec.Id == model.Id);
         if (element != null)
         {
             context.CustomerBase.Remove(element);
             context.SaveChanges();
         }
         else
         {
             throw new Exception("Элемент не найден");
         }
     }
 }
示例#13
0
 public PaymentViewModel GetElement(PaymentBindingModel model)
 {
     if (model == null)
     {
         return(null);
     }
     using (var context = new ComputerRepairDatabase())
     {
         var payment = context.Payment.FirstOrDefault(rec => rec.Id == model.Id);
         return(payment != null ? new PaymentViewModel
         {
             Id = payment.Id,
             Summ = payment.Summ,
             DateOfPayment = payment.DateOfPayment
         } : null);
     }
 }
示例#14
0
 public MaterialsViewModel GetElement(MaterialsBindingModel model)
 {
     if (model == null)
     {
         return(null);
     }
     using (var context = new ComputerRepairDatabase())
     {
         var material = context.Materials.FirstOrDefault(rec => rec.Id == model.Id);
         return(material != null ? new MaterialsViewModel
         {
             Id = material.Id,
             Name = material.Name,
             Price = material.Price
         } : null);
     }
 }
示例#15
0
 public ServicesViewModel GetElement(ServicesBindingModel model)
 {
     if (model == null)
     {
         return(null);
     }
     using (var context = new ComputerRepairDatabase())
     {
         var service = context.Materials.FirstOrDefault(rec => rec.Id == model.Id);
         return(service != null ? new ServicesViewModel
         {
             Id = service.Id,
             Name = service.Name,
             Price = service.Price
         } : null);
     }
 }
示例#16
0
 public void Insert(ContractBindingModel model)
 {
     using (var context = new ComputerRepairDatabase())
     {
         using (var transaction = context.Database.BeginTransaction())
         {
             try
             {
                 CreateModel(model, new Contract(), context);
                 transaction.Commit();
             }
             catch
             {
                 transaction.Rollback();
                 throw;
             }
         }
     }
 }
示例#17
0
 public CustomerBaseViewModel GetElement(CustomerBaseBindingModel model)
 {
     if (model == null)
     {
         return(null);
     }
     using (var context = new ComputerRepairDatabase())
     {
         var custBase = context.CustomerBase.FirstOrDefault(rec => rec.Id == model.Id);
         return(custBase != null ? new CustomerBaseViewModel
         {
             Id = custBase.Id,
             Surname = custBase.Surname,
             Name = custBase.Name,
             Lastname = custBase.Lastname,
             DateOfBirthday = custBase.DateOfBirthday
         } : null);
     }
 }
示例#18
0
 public EmployeeViewModel GetElement(EmployeeBindingModel model)
 {
     if (model == null)
     {
         return(null);
     }
     using (var context = new ComputerRepairDatabase())
     {
         var employee = context.Employee.FirstOrDefault(rec => rec.Id == model.Id);
         return(employee != null ? new EmployeeViewModel
         {
             Id = employee.Id,
             Surname = employee.Surname,
             Name = employee.Name,
             Lastname = employee.Lastname,
             DateOfBirthday = employee.DateOfBirthday,
             Post = employee.Post
         } : null);
     }
 }
示例#19
0
 public ContractViewModel GetElement(ContractBindingModel model)
 {
     if (model == null)
     {
         return(null);
     }
     using (var context = new ComputerRepairDatabase())
     {
         var contract = context.Contract
                        .Include(rec => rec.Employee)
                        .Include(rec => rec.ServicesContracts)
                        .ThenInclude(rec => rec.Services)
                        .Include(rec => rec.MaterialsContracts)
                        .ThenInclude(rec => rec.Materials)
                        .Include(rec => rec.Payment)
                        .Include(rec => rec.CustomerBase)
                        .FirstOrDefault(rec => rec.Id == model.Id);
         return(contract != null ?
                new ContractViewModel
         {
             Id = contract.Id,
             DateOfConclusion = contract.DateOfConclusion,
             CustomerBaseId = contract.CustomerBase.Id,
             EmployeeId = contract.Employee.Id,
             CustomerBase = contract.CustomerBase.Surname,
             Employee = contract.Employee.Surname,
             Payment = contract.Payment.Summ,
             Materials = contract.MaterialsContracts
                         .Select(rc => new MaterialsViewModel {
                 Id = rc.Materials.Id, Name = rc.Materials.Name, Price = rc.Materials.Price
             })
                         .ToList(),
             Services = contract.ServicesContracts
                        .Select(rc => new ServicesViewModel {
                 Id = rc.Services.Id, Name = rc.Services.Name, Price = rc.Services.Price
             })
                        .ToList()
         } :
                null);
     }
 }
示例#20
0
 public void Update(ContractBindingModel model)
 {
     using (var context = new ComputerRepairDatabase())
     {
         using (var transaction = context.Database.BeginTransaction())
         {
             try
             {
                 var element = context.Contract.FirstOrDefault(rec => rec.Id == model.Id);
                 if (element == null)
                 {
                     throw new Exception("Элемент не найден");
                 }
                 CreateModel(model, element, context);
                 transaction.Commit();
             }
             catch
             {
                 transaction.Rollback();
                 throw;
             }
         }
     }
 }