public async Task EmailGeneralSupportQueue(SupportCase supportCase) { var templateData = new EmailTemplate <SupportTemplateData>() { Data = new SupportTemplateData { DynamicPropertyName1 = "FirstName", DynamicPropertyValue1 = supportCase.FirstName, DynamicPropertyName2 = "LastName", DynamicPropertyValue2 = supportCase.LastName, DynamicPropertyName3 = "Email", DynamicPropertyValue3 = supportCase.Email, DynamicPropertyName4 = "Vendor", DynamicPropertyValue4 = supportCase.Vendor ?? "N/A", }, Message = new EmailDisplayText() { EmailSubject = supportCase.Subject, DynamicText = supportCase.Message } }; var recipient = SendgridMappers.DetermineRecipient(_settings, supportCase.Subject); await SendSingleTemplateEmailSingleRcptAttachment(_settings?.SendgridSettings?.FromEmail, recipient, _settings?.SendgridSettings?.CriticalSupportTemplateID, templateData, supportCase.File); }
public async Task SendOrderRequiresApprovalEmail(MessageNotification <OrderSubmitEventBody> messageNotification) { var order = messageNotification.EventBody.Order; var templateData = new EmailTemplate <OrderTemplateData>() { Data = SendgridMappers.GetOrderTemplateData(order, messageNotification.EventBody.LineItems), Message = OrderSubmitEmailConstants.GetOrderRequiresApprovalText() }; await SendSingleTemplateEmail(_settings?.SendgridSettings?.FromEmail, messageNotification?.Recipient?.Email, _settings?.SendgridSettings?.OrderApprovalTemplateID, templateData); }
public async Task SendOrderDeclinedEmail(MessageNotification <OrderSubmitEventBody> messageNotification) { var order = messageNotification.EventBody.Order; var approval = messageNotification.EventBody.Approvals.FirstOrDefault(); var templateData = new EmailTemplate <OrderTemplateData>() { Data = SendgridMappers.GetOrderTemplateData(order, messageNotification.EventBody.LineItems), Message = OrderSubmitEmailConstants.GetOrderDeclinedText() }; templateData.Data.Comments = approval.Comments; await SendSingleTemplateEmail(_settings?.SendgridSettings?.FromEmail, messageNotification?.Recipient?.Email, _settings?.SendgridSettings?.OrderApprovalTemplateID, templateData); }
private List <LineItemProductData> CreateTemplateProductList(List <HSLineItem> lineItems, LineItemStatusChanges lineItemStatusChanges) { // first get line items that actually had a change var changedLiIds = lineItemStatusChanges.Changes.Where(change => change.Quantity > 0).Select(change => change.ID); var changedLineItems = changedLiIds.Select(i => lineItems.Single(l => l.ID == i)); // now map to template data return(changedLineItems.Select(lineItem => { var lineItemStatusChange = lineItemStatusChanges.Changes.First(li => li.ID == lineItem.ID); return SendgridMappers.MapToTemplateProduct(lineItem, lineItemStatusChange); }).ToList()); }
public async Task SendOrderSubmitEmail(HSOrderWorksheet orderWorksheet) { var supplierEmailList = await GetSupplierEmails(orderWorksheet); var firstName = orderWorksheet.Order.FromUser.FirstName; var lastName = orderWorksheet.Order.FromUser.LastName; if (orderWorksheet.Order.xp.OrderType == OrderType.Standard) { var orderData = SendgridMappers.GetOrderTemplateData(orderWorksheet.Order, orderWorksheet.LineItems); var sellerTemplateData = new EmailTemplate <OrderTemplateData>() { Data = orderData, Message = OrderSubmitEmailConstants.GetOrderSubmitText(orderWorksheet.Order.ID, firstName, lastName, VerifiedUserType.admin) }; var buyerTemplateData = new EmailTemplate <OrderTemplateData>() { Data = orderData, Message = OrderSubmitEmailConstants.GetOrderSubmitText(orderWorksheet.Order.ID, firstName, lastName, VerifiedUserType.buyer) }; var sellerEmailList = await GetSellerEmails(); // send emails await SendSingleTemplateEmailMultipleRcpts(_settings?.SendgridSettings?.FromEmail, sellerEmailList, _settings?.SendgridSettings?.OrderSubmitTemplateID, sellerTemplateData); await SendSingleTemplateEmail(_settings?.SendgridSettings?.FromEmail, orderWorksheet.Order.FromUser.Email, _settings?.SendgridSettings?.OrderSubmitTemplateID, buyerTemplateData); await SendSupplierOrderSubmitEmails(orderWorksheet); } else if (orderWorksheet.Order.xp.OrderType == OrderType.Quote) { var orderData = SendgridMappers.GetQuoteOrderTemplateData(orderWorksheet.Order, orderWorksheet.LineItems); var buyerTemplateData = new EmailTemplate <QuoteOrderTemplateData>() { Data = orderData, Message = OrderSubmitEmailConstants.GetQuoteOrderSubmitText(VerifiedUserType.buyer) }; var supplierTemplateData = new EmailTemplate <QuoteOrderTemplateData>() { Data = orderData, Message = OrderSubmitEmailConstants.GetQuoteOrderSubmitText(VerifiedUserType.supplier) }; // send emails await SendSingleTemplateEmailMultipleRcpts(_settings?.SendgridSettings?.FromEmail, supplierEmailList, _settings?.SendgridSettings?.QuoteOrderSubmitTemplateID, supplierTemplateData); await SendSingleTemplateEmail(_settings?.SendgridSettings?.FromEmail, orderWorksheet.Order.FromUser.Email, _settings?.SendgridSettings?.QuoteOrderSubmitTemplateID, buyerTemplateData); } }
private async Task SendSupplierOrderSubmitEmails(HSOrderWorksheet orderWorksheet) { ListPage <HSSupplier> suppliers = null; if (orderWorksheet.Order.xp.SupplierIDs != null) { var filterString = String.Join("|", orderWorksheet.Order.xp.SupplierIDs); suppliers = await _oc.Suppliers.ListAsync <HSSupplier>(filters : $"ID={filterString}"); } foreach (var supplier in suppliers.Items) { if (supplier?.xp?.NotificationRcpts?.Count() > 0) { // get orderworksheet for supplier order and fill in some information from buyer order worksheet var supplierOrderWorksheet = await BuildSupplierOrderWorksheet(orderWorksheet, supplier.ID); var supplierTemplateData = new EmailTemplate <OrderTemplateData>() { Data = SendgridMappers.GetOrderTemplateData(supplierOrderWorksheet.Order, supplierOrderWorksheet.LineItems), Message = OrderSubmitEmailConstants.GetOrderSubmitText(orderWorksheet.Order.ID, supplierOrderWorksheet.Order.FromUser.FirstName, supplierOrderWorksheet.Order.FromUser.LastName, VerifiedUserType.supplier) }; // SEB-Specific Data ((OrderTemplateData)supplierTemplateData.Data).BillTo = new Address() { CompanyName = "SEB Vendor Portal - BES", Street1 = "8646 Eagle Creek Circle", Street2 = "Suite 107", City = "Savage", State = "MN", Zip = "55378", Phone = "877-771-9123", xp = { Email = "*****@*****.**" } }; var supplierTos = new List <EmailAddress>(); foreach (var rcpt in supplier.xp.NotificationRcpts) { supplierTos.Add(new EmailAddress(rcpt)); } ; await SendSingleTemplateEmailMultipleRcpts(_settings?.SendgridSettings?.FromEmail, supplierTos, _settings?.SendgridSettings?.OrderSubmitTemplateID, supplierTemplateData); } } }
public async Task EmailGeneralSupportQueue(SupportCase supportCase) { var templateData = new EmailTemplate <SupportTemplateData>() { Data = new SupportTemplateData { FirstName = supportCase?.FirstName, LastName = supportCase?.LastName, Email = supportCase?.Email, Vendor = supportCase?.Vendor ?? "N/A" }, Message = new EmailDisplayText() { EmailSubject = supportCase.Subject, DynamicText = supportCase.Message } }; var recipient = SendgridMappers.DetermineRecipient(_settings, supportCase.Subject); await SendSingleTemplateEmailSingleRcptAttachment(_settings?.SendgridSettings?.FromEmail, recipient, _settings?.SendgridSettings?.CriticalSupportTemplateID, templateData, supportCase.File); }