public async Task <IActionResult> sendEmail([FromBody] LeadDebitVM debitNotePdf) { try { LeadPolicy leadPolicy = _context.LeadPolicies.Where(l => l.Id == Guid.Parse(debitNotePdf.leadPolicyId)).FirstOrDefault(); Client client = _context.Clients.Where(l => l.Id == leadPolicy.ClientId).FirstOrDefault(); string clientName = string.Empty; string clientEmail = string.Empty; string policyName = string.Empty; string agentName = string.Empty; string[] directorsEmails = new string[2]; if (client.Type == "Individual") { clientName = client.Title + " " + client.Name + " " + client.Surname; } else { clientName = client.Name; } clientEmail = client.Email; var policyMasters = _context.PolicyClassMaster.ToList(); policyName = Util.GetPolicyName(policyMasters, leadPolicy.PolicyClassId); var agent = _context.Users.Where(x => x.Id == leadPolicy.CreatedBy.ToString()).FirstOrDefault(); agentName = agent.FirstName + " " + agent.LastName; var directors = await _context.CorporateDirectors.Where(x => x.ClientId == leadPolicy.ClientId && x.IsDeleted == false).ToListAsync(); if (directors != null && directors.Count() > 0) { directorsEmails[0] = directors[0].Email; if (directors.Count() == 2) { directorsEmails[1] = directors[1].Email; } } string message = StaticContent.DEBITNOTE_BODY_TEMPLATE.Replace("@reciever", clientName) .Replace("@policyname", policyName) .Replace("@agentname", agentName) .Replace("@organization", agent.OrganisationName) .Replace("@Greet", client.Type == "Individual" ? "Dear" : "M/s"); string debitnoteFile = debitNotePdf.debitNoteBase64.Replace("data:application/pdf;base64,", ""); await _emailSender.SendGridEmailWithAttachmentAsync(clientEmail, directorsEmails, StaticContent.DEBITNOTE_SUBJECT_TEMPLATE.Replace("@policyname", policyName), message, debitnoteFile, "DebitNote.pdf"); return(Json(new { msg = "Success" })); } catch (Exception xe) { return(Json(new { msg = "Fail" })); } }
public async Task <ActionResult> GetLeadPolicyData(Guid?lid) { var userId = User.FindFirst(ClaimTypes.NameIdentifier).Value; var orgId = _context.Users.Where(x => x.Id == userId).FirstOrDefault().OrganisationId; var leadDebitVM = new LeadDebitVM(); LeadPolicy leadPolicy = _context.LeadPolicies.Where(l => l.Id == lid).FirstOrDefault(); Client client = _context.Clients.Where(c => c.Id == leadPolicy.ClientId).FirstOrDefault(); Branch branch = _context.Branches.Where(b => b.OrganisationId == orgId).FirstOrDefault(); Organisation organisation = _context.Organisations.Where(o => o.Id == orgId).FirstOrDefault(); var leadPaymentDetail = _context.LeadPaymentDetails.Where(d => d.DebitNoteId == leadPolicy.DebitNoteId).FirstOrDefault(); var insurerId = _context.InsurerMasters.Where(i => i.Id == leadPolicy.InsurerMasterId).FirstOrDefault().GlobalInsurerId; var policyMasters = _context.PolicyClassMaster.ToList(); leadDebitVM.leadPolicy = leadPolicy; leadDebitVM.addresss = organisation.Address; leadDebitVM.organisationName = organisation.OrganisationName; leadDebitVM.amountReceived = ""; leadDebitVM.city = organisation.City; leadDebitVM.currency = ""; leadDebitVM.customerAddress = client.Address; leadDebitVM.clientId = client.Id.ToString(); leadDebitVM.email = organisation.Email; leadDebitVM.endorsementNo = ""; leadDebitVM.leadPolicy = leadPolicy; leadDebitVM.paymentMode = ""; leadDebitVM.phone = organisation.PhoneNumber; leadDebitVM.policyName = Util.GetPolicyName(policyMasters, leadPolicy.PolicyClassId); if (string.IsNullOrEmpty(leadDebitVM.leadPolicy.PolicyNo)) { leadDebitVM.policyNo = "TBA"; } else { leadDebitVM.policyNo = leadDebitVM.leadPolicy.PolicyNo; } leadDebitVM.riskType = ""; leadDebitVM.transcationType = ""; leadDebitVM.branchName = branch.BranchName; leadDebitVM.customerNo = client.ClientCode.ToString(); leadDebitVM.insurerName = Util.GetInsurerName(_context, insurerId); leadDebitVM.imageUrl = Util.GetImageUrl(organisation.ImageUrl); leadDebitVM.Client = client; var leadPolicyDebitNote = new LeadPolicyDebitNote(); leadDebitVM.isNew = false; if (leadPolicy.DebitNoteId == null || leadPolicy.DebitNoteId == Guid.Empty) { leadPolicyDebitNote.PolicyNo = leadPolicy.PolicyNo; leadPolicyDebitNote.EndorsementNo = leadPolicy.EndorsementNo; leadPolicyDebitNote.ID = Guid.NewGuid(); leadPolicyDebitNote.CreatedBy = Guid.Parse(userId); leadPolicyDebitNote.ModifiedBy = Guid.Parse(userId); leadPolicyDebitNote.LeadId = leadPolicy.Id; leadPolicyDebitNote.OrganisationId = orgId; _context.Add(leadPolicyDebitNote); leadPolicy.DebitNoteId = leadPolicyDebitNote.ID; _context.Update(leadPolicy); try { await _context.SaveChangesAsync(); } catch (Exception ex) { } leadDebitVM.isNew = true; StatusMessage = StaticContent.DEBITNOTE_GENERATE_SUCCESS_MSG; ViewData["StatusMessage"] = StatusMessage; } leadDebitVM.leadPolicyDebitNote = _context.LeadPolicyDebitNotes.Where(l => l.ID == leadPolicy.DebitNoteId).OrderByDescending(a => a.DateCreated).SingleOrDefault(); leadDebitVM.preparedBy = _context.Users.Where(x => x.Id == leadDebitVM.leadPolicyDebitNote.CreatedBy.ToString()).FirstOrDefault().FirstName; return(PartialView("DebitNotePartial", leadDebitVM)); }