public CustomersDto SaveCustomer(CustomersDto customer) { using (var db = new GapInsuranceDBModel()) { if (!db.Clients.Any(x => x.Id == customer.ClientId)) { throw new KeyNotFoundException("Client not found"); } Customers dbCustomer = null; if (customer.Id > 0) { dbCustomer = db.Customers.FirstOrDefault(x => x.Id == customer.Id); } if (dbCustomer == null) { dbCustomer = new Customers(); db.Customers.Add(dbCustomer); } dbCustomer.FirstName = customer.FirstName; dbCustomer.LastName = customer.LastName; dbCustomer.ClientId = db.Clients.FirstOrDefault(x => x.Id == customer.ClientId).Id; db.SaveChanges(); return(Mapper.Map <Customers, CustomersDto>(dbCustomer)); } }
public CoveragesDto SaveCoverage(CoveragesDto coverage) { using (var db = new GapInsuranceDBModel()) { Coverages dbCoverage; if (coverage.Id > 0) { dbCoverage = db.Coverages.FirstOrDefault(x => x.Id == coverage.Id); if (dbCoverage == null) { throw new KeyNotFoundException("Coverage doesn't exists"); } } else { dbCoverage = new Coverages(); db.Coverages.Add(dbCoverage); } dbCoverage.Name = coverage.Name; db.SaveChanges(); return(Mapper.Map <Coverages, CoveragesDto>(dbCoverage)); } }
public ClientsDto SaveClient(ClientsDto client) { using (var db = new GapInsuranceDBModel()) { Clients dbClient; if (client.Id > 0) { dbClient = db.Clients.FirstOrDefault(x => x.Id == client.Id); if (dbClient == null) { throw new KeyNotFoundException("Client doesn't exists"); } } else { dbClient = new Clients(); db.Clients.Add(dbClient); } dbClient.Name = client.Name; db.SaveChanges(); return(Mapper.Map <Clients, ClientsDto>(dbClient)); } }
public Customer_PoliciesDto SaveCustomerPolicy(Customer_PoliciesDto custPolicy) { using (var db = new GapInsuranceDBModel()) { Customer_Policies dbCustPolicy = null; //TODO. change throw exceptions since this is not very testable. if (custPolicy.CoverPercentage > 100) { throw new InvalidOperationException("Cover percentage can't be higher than 100%"); } if (!db.Customers.Any(x => x.Id == custPolicy.CustomerId)) { throw new KeyNotFoundException("Customer not found"); } if (!db.Policies.Any(x => x.Id == custPolicy.PolicyId)) { throw new KeyNotFoundException("Policy not found"); } if (custPolicy.RiskType == RiskType.High && custPolicy.CoverPercentage > 50) { throw new InvalidOperationException("Cover percentage can't be higher than 50% when risk is high"); } if (custPolicy.Id > 0) { dbCustPolicy = db.Customer_Policies.FirstOrDefault(o => o.Id == custPolicy.Id); } if (dbCustPolicy == null) { dbCustPolicy = new Customer_Policies(); db.Customer_Policies.Add(dbCustPolicy); } dbCustPolicy.PolicyId = db.Policies.FirstOrDefault(x => x.Id == custPolicy.PolicyId).Id; dbCustPolicy.StartDate = custPolicy.StartDate; dbCustPolicy.EndDate = custPolicy.EndDate; dbCustPolicy.Price = custPolicy.Price; dbCustPolicy.RiskType = (int)custPolicy.RiskType; dbCustPolicy.CustomerId = db.Customers.FirstOrDefault(x => x.Id == custPolicy.CustomerId).Id; dbCustPolicy.Active = custPolicy.Active; dbCustPolicy.CoverPercentage = custPolicy.CoverPercentage; db.SaveChanges(); return(Mapper.Map <Customer_Policies, Customer_PoliciesDto>(dbCustPolicy)); } }
public PoliciesDto GetPolicy(int id) { using (var db = new GapInsuranceDBModel()) { var policy = db.Policies.FirstOrDefault(x => x.Id == id); if (policy != null) { return(Mapper.Map <Policies, PoliciesDto>(policy)); } } return(null); }
public IList <PoliciesDto> GetPolicies() { using (var db = new GapInsuranceDBModel()) { var policies = db.Policies.ToList(); if (policies?.Any() == true) { return(policies.Select(x => Mapper.Map <Policies, PoliciesDto>(x)).ToList()); } } return(null); }
public IList <CoveragesDto> GetCoverages() { using (var db = new GapInsuranceDBModel()) { var c = db.Coverages.ToList(); if (c?.Any() == true) { return(c.Select(x => Mapper.Map <Coverages, CoveragesDto>(x)).ToList()); } } return(null); }
public CoveragesDto GetCoverage(int id) { using (var db = new GapInsuranceDBModel()) { var client = db.Coverages.FirstOrDefault(x => x.Id == id); if (client != null) { return(Mapper.Map <Coverages, CoveragesDto>(client)); } } return(null); }
public IList <ClientsDto> GetClients() { using (var db = new GapInsuranceDBModel()) { var clients = db.Clients.ToList(); if (clients?.Any() == true) { return(clients.Select(x => Mapper.Map <Clients, ClientsDto>(x)).ToList()); } } return(null); }
public CustomersDto GetCustomer(int id) { using (var db = new GapInsuranceDBModel()) { var customer = db.Customers.FirstOrDefault(x => x.Id == id); if (customer != null) { return(Mapper.Map <Customers, CustomersDto>(customer)); } } return(null); }
public IList <CustomersDto> GetCustomers() { using (var db = new GapInsuranceDBModel()) { var customers = db.Customers.ToList(); if (customers?.Any() == true) { return(customers.Select(x => Mapper.Map <Customers, CustomersDto>(x)).ToList()); } } return(null); }
public bool DeleteCoverage(int id) { using (var db = new GapInsuranceDBModel()) { var c = db.Coverages.FirstOrDefault(x => x.Id == id); int deleted = 0; if (c != null) { db.Coverages.Remove(c); deleted = db.SaveChanges(); } return(deleted > 0); } }
public bool DeletePolicy(int id) { using (var db = new GapInsuranceDBModel()) { var policy = db.Policies .Include(p => p.Coverages) .FirstOrDefault(x => x.Id == id); int deleted = 0; if (policy != null) { policy.Coverages.Clear(); db.Policies.Remove(policy); deleted = db.SaveChanges(); } return(deleted > 0); } }
public PoliciesDto SavePolicy(PoliciesDto policy) { using (var db = new GapInsuranceDBModel()) { Policies dbPolicy = null; if (policy.Id > 0) { dbPolicy = db.Policies.FirstOrDefault(o => o.Id == policy.Id); } if (dbPolicy == null) { dbPolicy = new Policies(); db.Policies.Add(dbPolicy); } dbPolicy.Name = policy.Name; dbPolicy.Description = policy.Description; var dbCoverages = policy.Coverages.Select(od => Mapper.Map <CoveragesDto, Coverages>(od)); var deletedCoverages = dbPolicy.Coverages.Where(c => !dbCoverages.Select(dbC => dbC.Id).Contains(c.Id)).ToList(); var addedCoverages = dbCoverages.Where(x => !dbPolicy.Coverages.Select(n => n.Id).Contains(x.Id)).ToList(); deletedCoverages.ForEach(d => dbPolicy.Coverages.Remove(d)); addedCoverages.ForEach(nc => { dbPolicy.Coverages.Add(db.Coverages.FirstOrDefault(x => x.Id == nc.Id)); }); db.SaveChanges(); return(Mapper.Map <Policies, PoliciesDto>(dbPolicy)); } }