public ApiEndorsementModel MapEndorsementCommonModel(EndorsementModel endorsement) { return(new ApiEndorsementModel() { ID = endorsement.ID, Details = endorsement.Details, PolicyCoverageDetailID = endorsement.PolicyCoverageDetailID }); }
// GET: Policy/Details/5 public ActionResult Details(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } var policyDetailModel = Uow.Policies.GetAll() .Where(c => c.Id == id) .ProjectTo <PolicyDetailModel>() .FirstOrDefault(); if (policyDetailModel == null) { return(HttpNotFound()); } if (policyDetailModel.IsOrganization) { policyDetailModel.ClientName = policyDetailModel.OrganizationName; } var claimsList = Uow.Claims.GetAll() .Where(c => c.PolicyId == id) .ProjectTo <PolicyClaimModel>() .ToList(); var invoicesList = Uow.Invoices.GetAll() .Where(i => i.PolicyId == id) .ProjectTo <PolicyInvoiceModel>() .ToList(); var attachmentsList = Uow.PolicyAttachments.GetAll() .Where(i => i.PolicyId == id) .ProjectTo <PolicyAttachmentModel>() .ToList(); var endt = new EndorsementModel { PolicyId = (int)id, IssueDate = DateTime.Now, EffectiveDate = DateTime.Now }; var endorsementsList = Uow.Endorsements.GetAll() .Where(i => i.PolicyId == id) .ProjectTo <EndorsementModel>() .ToList(); policyDetailModel.PolicyClaims = claimsList; policyDetailModel.PolicyInvoices = invoicesList; policyDetailModel.PolicyAttachments = attachmentsList; policyDetailModel.Endt = endt; policyDetailModel.Endorsements = endorsementsList; return(View(policyDetailModel)); }
private void UpdatePolicyAndInvoices(EndorsementModel model) { // Update (1)policy premium and for invoices that are not yet approved, // the (2)premium particular and (3)total amount due // only if the created or edited endorsement is the latest for the policy var latestEndt = Uow.Endorsements.GetAll() .Where(e => e.PolicyId == model.PolicyId) .OrderByDescending(e => e.EffectiveDate) .FirstOrDefault(); if (latestEndt != null) { if (model.EffectiveDate >= latestEndt.EffectiveDate) { var policyEntity = Uow.Policies.GetAll() .Where(p => p.Id == model.PolicyId) .FirstOrDefault(); policyEntity.Premium += model.TotalEndorsementAmount; Uow.Policies.Update(policyEntity); var invoices = Uow.Invoices.GetAll() .Where(i => i.PolicyId == model.PolicyId) .Include(i => i.Particulars.Select(p => p.ParticularType)) .Include(i => i.Status) .ToList(); if (invoices != null) { foreach (var item in invoices) { if (item.Status.Name.ToLower() == "pending" || item.Status.Name.ToLower() == "rejected") { if (item.Particulars != null) { var premiumItem = item.Particulars .Where(p => p.ParticularType.Name.ToLower() == "premium") .FirstOrDefault(); if (premiumItem != null) { premiumItem.ParticularAmount += model.TotalEndorsementAmount; item.TotalAmountDue = item.Particulars .Sum(p => p.ParticularAmount); Uow.Particulars.Update(premiumItem); Uow.Invoices.Update(item); } } } } } } } }