Пример #1
0
        public void SendMissingAWBsMail(List <ExpressMissingShipmentModel> Awbs, int UserId)
        {
            ExpressEmailModel Res = new ExpressEmailModel();

            Res.ImageHeader = "FrayteLogo";
            Res.TotalMawb   = Awbs.Count;
            //foreach (var mawb in Mawbs)
            //{
            //    MawbCount = MawbCount + mawb.GrossWeight
            //}
            Res.MissingAwbs = Awbs;

            Res.TotalWeight = Awbs.Sum(a => a.TotalWeight);
            Res.ShipInfo    = new List <ExpressMissingShipmentsInfo>();
            Res.TotalAwbs   = Awbs.Count;
            Res.CreatedOn   = DateTime.UtcNow.Date.AddDays(-1).ToString("dd-MMM-yyyy");
            string        logoImage = AppSettings.EmailServicePath + "/Images/FrayteLogo.png";
            List <string> ImagePath = new List <string>();

            ImagePath.Add(logoImage);
            var    OperationName = UtilityRepository.GetOperationZone();
            string Site          = string.Empty;

            if (OperationName.OperationZoneId == 1)
            {
                //Res.SiteAddress = AppSettings.TrackingUrl;
            }
            else if (OperationName.OperationZoneId == 2)
            {
                //Res.SiteAddress = AppSettings.TrackingUrl;
            }
            Res.ImageHeader = "FrayteLogo";
            string OperationUserEmail = "";
            int    RoleId             = 0;
            var    Email = "";

            var result = (from Usr in dbContext.Users
                          join Rl in dbContext.UserRoles on Usr.UserId equals Rl.UserId
                          join UA in dbContext.UserAdditionals on Usr.UserId equals UA.UserId
                          where Usr.UserId == UserId
                          select new
            {
                Usr.UserEmail,
                Rl.RoleId,
                Usr.ContactName,
                Usr.CompanyName,
                UA.OperationUserId
            }).FirstOrDefault();

            if (result != null)
            {
                RoleId = result.RoleId;
                Email  = result.UserEmail;
                Res.CustomerCompanyName = result.CompanyName;
            }

            var result1 = (from Usr in dbContext.Users
                           join Rl in dbContext.UserRoles on Usr.UserId equals Rl.UserId
                           join UA in dbContext.UserAdditionals on Usr.UserId equals UA.UserId
                           where Usr.UserId == result.OperationUserId
                           select new
            {
                Usr.Email,
                Rl.RoleId,
                Usr.ContactName,
                Usr.CompanyName,
                UA.OperationUserId,
                Usr.Position
            }).FirstOrDefault();

            if (result1 != null)
            {
                RoleId             = result1.RoleId;
                OperationUserEmail = result1.Email;
            }
            if (OperationName.OperationZoneId == 1)
            {
                Res.UserEmail     = result1.Email;
                Res.UserName      = result1.ContactName;
                Res.UserPosition  = result1.Position;
                Res.CustomerName  = result.ContactName;
                Res.CustomerEmail = result.UserEmail;
                Res.SystemEmail   = "*****@*****.**";
                Res.UserPhone     = "(+852) 2148 4880";
                //Res.SiteAddress = AppSettings.TrackingUrl;
                Res.Site = "www.FRAYTE.com";
            }
            if (OperationName.OperationZoneId == 2)
            {
                Res.UserEmail     = result1.Email;
                Res.UserPosition  = result1.Position;
                Res.UserName      = result1.ContactName;
                Res.CustomerName  = result.ContactName;
                Res.CustomerEmail = result.UserEmail;
                Res.SystemEmail   = "*****@*****.**";
                Res.UserPhone     = "(+44) 01792 277295";
                // Res.SiteAddress = AppSettings.TrackingUrl;
                Res.Site = "www.FRAYTE.co.uk";
            }

            string template     = File.ReadAllText(AppSettings.EmailServicePath + "/EmailTeamplate/Express/EXS_E4.cshtml");
            var    EmailBody    = Engine.Razor.RunCompile(template, "Usr4", null, Res, null);
            var    EmailSubject = "";
            var    Mawbvar      = "";
            var    Status       = "";

            if (!string.IsNullOrEmpty(Res.CustomerCompanyName))
            {
                EmailSubject = Res.CustomerCompanyName + " - EXS Discrepancies Shipment Summary – " + DateTime.UtcNow.Date.AddDays(-1).ToString("dd-MMM-yyyy");
            }

            FrayteEmail.SendMail(Email, "", EmailSubject, EmailBody, "", logoImage);

            ExpressSchedulerEmail ExpSchEm1 = new ExpressSchedulerEmail();

            ExpSchEm1.CustomerId   = UserId;
            ExpSchEm1.EmailSentOn  = DateTime.UtcNow.Date;
            ExpSchEm1.EmailContent = EmailBody;
            dbContext.ExpressSchedulerEmails.Add(ExpSchEm1);
            dbContext.SaveChanges();
        }
Пример #2
0
        public void SendPODAWBsMail(List <ExpressDispatchedMawbModel> Mawbs, List <ExpressShipmentBookedConsolidateModel> Shipments, int UserId)
        {
            ExpressEmailModel Res = new ExpressEmailModel();

            Res.TotalMawb       = Mawbs.Count;
            Res.DispatchedMawbs = Mawbs;
            Res.AWbShipmentList = Shipments;
            var Hubs = Shipments.Select(a => a.HubCode).Distinct();

            Res.ShipList = new List <ExpressHubShipmentCountModel>();

            foreach (var h in Hubs)
            {
                var ShipmentCount = 0;

                foreach (var Sh in Shipments)
                {
                    if (h == Sh.HubCode)
                    {
                        ShipmentCount = ShipmentCount + Sh.Shipments.Count;
                    }
                }
                Res.ShipList.Add(new ExpressHubShipmentCountModel {
                    HubCode = h, ShipmentCount = ShipmentCount
                });
            }

            Res.TotalWeight = Mawbs.Sum(a => a.GrossWeight);
            Res.ShipInfo    = new List <ExpressMissingShipmentsInfo>();

            Res.TotalAwbs = 0;
            for (int i = 0; i < Shipments.Count; i++)
            {
                Res.TotalAwbs = Res.TotalAwbs + Shipments[i].Shipments.Count;
            }

            Res.CreatedOn = DateTime.UtcNow.Date.AddDays(-1).ToString("dd-MMM-yyyy");
            string        logoImage = AppSettings.EmailServicePath + "/Images/FrayteLogo.png";
            List <string> ImagePath = new List <string>();

            ImagePath.Add(logoImage);
            var OperationName = UtilityRepository.GetOperationZone();

            Res.ImageHeader = "FrayteLogo";
            string OperationUserEmail = "";
            int    RoleId             = 0;
            var    Email = "";

            var result = (from Usr in dbContext.Users
                          join Rl in dbContext.UserRoles on Usr.UserId equals Rl.UserId
                          join UA in dbContext.UserAdditionals on Usr.UserId equals UA.UserId
                          where Usr.UserId == UserId
                          select new
            {
                Usr.UserEmail,
                Rl.RoleId,
                Usr.ContactName,
                Usr.CompanyName,
                UA.OperationUserId
            }).FirstOrDefault();

            if (result != null)
            {
                RoleId = result.RoleId;
                Email  = result.UserEmail;
                Res.CustomerCompanyName = result.CompanyName;
            }

            var result1 = (from Usr in dbContext.Users
                           join Rl in dbContext.UserRoles on Usr.UserId equals Rl.UserId
                           join UA in dbContext.UserAdditionals on Usr.UserId equals UA.UserId
                           where Usr.UserId == result.OperationUserId
                           select new
            {
                Usr.Email,
                Rl.RoleId,
                Usr.ContactName,
                Usr.CompanyName,
                UA.OperationUserId,
                Usr.Position
            }).FirstOrDefault();

            if (result1 != null)
            {
                RoleId             = result1.RoleId;
                OperationUserEmail = result1.Email;
            }

            if (OperationName.OperationZoneId == 1)
            {
                Res.UserEmail     = result1.Email;
                Res.UserName      = result1.ContactName;
                Res.UserPosition  = result1.Position;
                Res.CustomerName  = result.ContactName;
                Res.CustomerEmail = result.UserEmail;
                Res.SystemEmail   = "*****@*****.**";
                Res.UserPhone     = "(+852) 2148 4880";
                //Res.SiteAddress = AppSettings.TrackingUrl;
                Res.Site = "www.FRAYTE.com";
            }

            if (OperationName.OperationZoneId == 2)
            {
                Res.UserEmail     = result1.Email;
                Res.UserPosition  = result1.Position;
                Res.UserName      = result1.ContactName;
                Res.CustomerName  = result.ContactName;
                Res.CustomerEmail = result.UserEmail;
                Res.SystemEmail   = "*****@*****.**";
                Res.UserPhone     = "(+44) 01792 277295";
                // Res.SiteAddress = AppSettings.TrackingUrl;
                Res.Site = "www.FRAYTE.co.uk";
            }

            string template     = File.ReadAllText(AppSettings.EmailServicePath + "/EmailTeamplate/Express/EXS_E2_POD.cshtml");
            var    EmailBody    = Engine.Razor.RunCompile(template, "Usr3", null, Res, null);
            var    EmailSubject = "";
            var    Mawbvar      = "";
            var    Status       = "";

            if (!string.IsNullOrEmpty(Res.CustomerCompanyName))
            {
                EmailSubject = Res.CustomerCompanyName + " - EXS POD Summary   – " + DateTime.UtcNow.Date.AddDays(-1).ToString("dd-MMM-yyyy");
            }

            FrayteEmail.SendMail(Email, "", EmailSubject, EmailBody, "", logoImage);

            ExpressSchedulerEmail ExpSchEm1 = new ExpressSchedulerEmail();

            ExpSchEm1.CustomerId   = UserId;
            ExpSchEm1.EmailSentOn  = DateTime.UtcNow.Date;
            ExpSchEm1.EmailContent = EmailBody;
            dbContext.ExpressSchedulerEmails.Add(ExpSchEm1);
            dbContext.SaveChanges();
        }