public void Run(Model.MlbStatsContext context) { var url = Feeds.JobTypesFeed.GetFeedUrl(); var rawJson = JsonUtility.GetRawJsonFromUrl(url); var feed = Feeds.JobTypesFeed.FromJson(rawJson); feed = feed.OrderBy(x => x.SortOrder.HasValue ? 1 : 2).ThenBy(y => y.SortOrder).ThenBy(z => z.Code).ToList(); var dbJobTypes = context.JobTypes.ToDictionary(x => x.Code); foreach (var feedJobType in feed) { if (!dbJobTypes.TryGetValue(feedJobType.Code, out Model.JobType dbJobType)) { dbJobType = new Model.JobType { Code = feedJobType.Code, Description = feedJobType.Job, SortOrder = feedJobType.SortOrder }; dbJobTypes.Add(feedJobType.Code, dbJobType); context.JobTypes.Add(dbJobType); } else { if (!string.Equals(dbJobType.Description, feedJobType.Job, StringComparison.InvariantCultureIgnoreCase)) { dbJobType.Description = feedJobType.Job; } if (dbJobType.SortOrder != feedJobType.SortOrder) { dbJobType.SortOrder = feedJobType.SortOrder; } } } context.SaveChanges(); }
public static void SendOrderConfirmed(string jobUniqueId, Model.User user, Model.JobDetails jobDetails, Model.User driver, Model.Fleet fleet, Model.JobType jobType, Model.FleetType fleetType) { Task.Run(async() => { String apiKey = ConfigurationManager.AppSettings.Get("SendGridApiKey"); dynamic sg = new SendGrid.SendGridAPIClient(apiKey); Email from = new Email("*****@*****.**"); String subject = ConfigurationManager.AppSettings.Get("ConfirmSubject") + string.Format("(Order ID: {0})", jobUniqueId); Email to = new Email(user.email); Content content = new Content("text/html", subject); Mail mail = new Mail(from, subject, to, content); mail.TemplateId = ConfigurationManager.AppSettings.Get("ConfirmTemplateId"); mail.Personalization[0].AddSubstitution("{{orderId}}", jobUniqueId); mail.Personalization[0].AddSubstitution("{{date}}", jobDetails.deliveryDate); mail.Personalization[0].AddSubstitution("{{jobType}}", jobType.name); mail.Personalization[0].AddSubstitution("{{fleetType}}", fleetType.name); mail.Personalization[0].AddSubstitution("{{amount}}", jobDetails.amount.ToString()); mail.Personalization[0].AddSubstitution("{{driver}}", driver.displayName); mail.Personalization[0].AddSubstitution("{{driverContact}}", driver.contactNumber); mail.Personalization[0].AddSubstitution("{{driverIdentification}}", driver.identityCard); mail.Personalization[0].AddSubstitution("{{fleetRegistration}}", fleet.registrationNumber); var addressFrom = jobDetails.addressFrom[0]; mail.Personalization[0].AddSubstitution("{{from}}", addressFrom.address1 + ", " + addressFrom.address2 + ", " + addressFrom.address3); try { var addressTo = jobDetails.addressTo[0]; if (addressTo != null) { mail.Personalization[0].AddSubstitution("{{to}}", addressTo.address1 + ", " + addressTo.address2 + ", " + addressTo.address3); } } catch (Exception) { mail.Personalization[0].AddSubstitution("{{to}}", ""); } dynamic response = await sg.client.mail.send.post(requestBody: mail.Get()); }); }