private SendGridMessage BuildOrderMessage(OrderEventBody eventBody) { var msg = new SendGridMessage(); msg.AddSubstitution("-firstname-", eventBody.Order.FromUser.FirstName); msg.AddSubstitution("-lastname-", eventBody.Order.FromUser.LastName); msg.AddSubstitution("-orderid-", eventBody.Order.ID); msg.AddSubstitution("-datesubmitted-", eventBody.Order.DateSubmitted.ToString()); msg.AddSubstitution("-subtotal-", eventBody.Order.Subtotal.ToString()); msg.AddSubstitution("-tax-", eventBody.Order.TaxCost.ToString()); msg.AddSubstitution("-shipping-", eventBody.Order.ShippingCost.ToString()); msg.AddSubstitution("-total-", eventBody.Order.Total.ToString()); msg.AddSubstitution("-lineitemcount-", eventBody.Order.LineItemCount.ToString()); return(msg); }
private List <GlobalMergeVar> BuildOrderMergeVars(OrderEventBody eventBody) { var mergeVars = new List <GlobalMergeVar>() { new GlobalMergeVar { name = "firstname", content = eventBody.Order.FromUser.FirstName }, new GlobalMergeVar { name = "lastname", content = eventBody.Order.FromUser.LastName }, new GlobalMergeVar { name = "orderid", content = eventBody.Order.ID }, new GlobalMergeVar { name = "datesubmitted", content = eventBody.Order.DateSubmitted }, new GlobalMergeVar { name = "subtotal", content = eventBody.Order.Subtotal }, new GlobalMergeVar { name = "tax", content = eventBody.Order.TaxCost }, new GlobalMergeVar { name = "shipping", content = eventBody.Order.ShippingCost }, new GlobalMergeVar { name = "total", content = eventBody.Order.Total }, new GlobalMergeVar { name = "lineitemcount", content = eventBody.Order.LineItemCount }, new GlobalMergeVar { name = "products", content = eventBody.LineItems.Select(li => { var mli = new MandrillLineItem { Cost = li.LineTotal, Quantity = li.Quantity, ProductDesc = eventBody.Products.FirstOrDefault(p => p.ID == li.ProductID)?.Description, ProductID = li.ProductID, ProductName = eventBody.Products.FirstOrDefault(p => p.ID == li.ProductID)?.Name, ShipToName = li.ShippingAddress?.FirstName + " " + li.ShippingAddress?.LastName, ShipToStreet1 = li.ShippingAddress?.Street1, ShipToStreet2 = li.ShippingAddress?.Street2, ShipToCity = li.ShippingAddress?.City, ShipToState = li.ShippingAddress?.State, ShipToPostalCode = li.ShippingAddress?.Zip, ShipToCountry = li.ShippingAddress?.Country }; return(mli); }).ToArray() }, new GlobalMergeVar { name = "approvals", content = eventBody.Approvals?.Select(a => { var ma = new MandrillApproval { ApprovingGroupID = a.ApprovingGroupID, Status = a.Status, DateCreated = a.DateCreated, DateCompleted = a.DateCompleted, ApproverID = a.Approver?.ID, ApproverUsername = a.Approver?.Username, ApproverEmail = a.Approver?.Email, ApproverFirstName = a.Approver?.FirstName, ApproverLastName = a.Approver?.LastName, ApproverPhone = a.Approver?.Phone, Comments = a.Comments }; return(ma); }).ToArray() } }; if (eventBody.Order.xp != null) { IList <XpRow> xpRows = XpParser.ToRows(eventBody.Order.xp.ToString()); mergeVars.AddRange(xpRows.Select( xpRow => xpRow.Index == null ? new GlobalMergeVar { name = "orderxp_" + xpRow.Key.Replace(".", "_"), content = xpRow.Value } : new GlobalMergeVar { name = $"orderxp_{xpRow.Key.Replace(".", "_")}_{xpRow.Index}", content = xpRow.Value })); } return(mergeVars); }