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();
        }
Exemplo n.º 2
0
        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());
            });
        }