Example #1
0
        public void SendMailToReceivers(ManifestTrackingReceiver MTM)
        {
            string xsUserFolder = @"C:\FMS\" + "FrayteSchedularlog.txt";

            BaseLog.Instance.SetLogFile(xsUserFolder);
            Logger _log = Get_Log();
            //Get Customer Name and Customer User Detail
            var customerDetail = (from u in dbContext.Users
                                  join ua in dbContext.UserAdditionals on u.UserId equals ua.UserId
                                  join ua1 in dbContext.UserAdditionals on ua.OperationUserId equals ua1.UserId
                                  join u1 in dbContext.Users on ua1.UserId equals u1.UserId
                                  join tz in dbContext.Timezones on u.TimezoneId equals tz.TimezoneId
                                  where u.UserId == MTM.CustomerId
                                  select new
            {
                CustomerName = u.ContactName,
                CustomerEmail = u.Email,
                CompanyName = u.CompanyName,
                UserName = u1.ContactName,
                UserPosition = u1.Position,
                UserEmail = u1.Email,
                UserPhone = u1.TelephoneNo,
                UserSkype = u1.Skype,
                UserFax = u1.FaxNumber,
                TimeZoneDetail = new TimeZoneModal
                {
                    Name = tz.Name,
                    Offset = tz.Offset,
                    OffsetShort = tz.OffsetShort,
                    TimezoneId = tz.TimezoneId
                }
            }).FirstOrDefault();
            var            operationzone = UtilityRepository.GetOperationZone();
            string         logoImage     = AppSettings.EmailServicePath + "/Images/FrayteLogo.png";
            DynamicViewBag viewBag       = new DynamicViewBag();

            if (customerDetail.TimeZoneDetail != null)
            {
                viewBag.AddValue("CreatedOn", UtilityRepository.GetTimeZoneCurrentDateTime(customerDetail.TimeZoneDetail.Name).ToString("dd-MMM-yyyy hh:mm"));;
                viewBag.AddValue("TimeZone", customerDetail.TimeZoneDetail.OffsetShort);
            }
            else
            {
                viewBag.AddValue("CreatedOn", DateTime.Now.ToString("dd-MMM-yyyy hh:mm"));
            }

            viewBag.AddValue("TrackingDescription", MTM.TrackingDescription);
            viewBag.AddValue("TrackingNo", MTM.ReceiverTrackingNo);
            viewBag.AddValue("CustomerName", MTM.ReceiverName);
            viewBag.AddValue("UserEmail", customerDetail.CustomerEmail);
            viewBag.AddValue("UserPhone", customerDetail.UserPhone);
            viewBag.AddValue("ImageHeader", "FrayteLogo");

            if (operationzone.OperationZoneId == 1)
            {
                viewBag.AddValue("SiteAddress", AppSettings.TrackingUrl);
            }
            else
            {
                viewBag.AddValue("SiteAddress", AppSettings.TrackingUrl);
            }

            string template        = File.ReadAllText(AppSettings.EmailServicePath + "/EmailTeamplate/eCommerceManifestTracking.cshtml");
            var    templateService = new TemplateService();
            var    EmailBody       = templateService.Parse(template, MTM, viewBag, null);
            string EmailSubject    = "Manifest Tracking";

            //var To = MTM.ReceiverMail;
            _log.Error(MTM.ReceiverMail);
            var    To     = "*****@*****.**";
            var    CC     = customerDetail.UserEmail;
            string Status = "Confirmation";

            //Send mail to Customer
            //SendMail_New(To, CC, "FRAYTE (" + UtilityRepository.OperationZoneName(operationzone.OperationZoneId) + ")", EmailSubject, EmailBody, Attachment, Status);
            FrayteEmail.SendMail(To, CC, EmailSubject, EmailBody, logoImage);
        }
Example #2
0
        public List <ManifestTrackingReceiver> GetManifestTracking(string ManifestId)
        {
            int MI = Convert.ToInt32(ManifestId);
            // Get Shipments from database according to manifestId
            var ManifestData = (from ECS in dbContext.eCommerceShipments
                                //join EADF in dbContext.eCommerceShipmentAddresses on ECS.FromAddressId equals EADF.eCommerceShipmentAddressId
                                join EADT in dbContext.eCommerceShipmentAddresses on ECS.ToAddressId equals EADT.eCommerceShipmentAddressId
                                join PDD in dbContext.eCommerceShipmentDetails on ECS.eCommerceShipmentId equals PDD.eCommerceShipmentId
                                join TN in dbContext.eCommercePackageTrackingDetails on PDD.eCommerceShipmentDetailId equals TN.eCommerceShipmentDetailId
                                //join TD in dbContext.eCommercePackageTrackingDetails on PDD.eCommerceShipmentDetailId equals TD.eCommerceShipmentDetailId
                                //join Cur in dbContext.CurrencyTypes on ECS.CurrencyCode equals Cur.CurrencyCode
                                //join Cun in dbContext.Countries on EADF.CountryId equals Cun.CountryId
                                where
                                ECS.ManifestId == MI
                                select new ManifestTrackingModel
            {
                eCommerceShipmentId = ECS.eCommerceShipmentId,
                TrackingNo = TN.TrackingNo,
                FrayteNo = ECS.FrayteNumber,
                CreatedOnUtc = DateTime.UtcNow,
                UserId = ECS.CustomerId,
                shipToEmail = EADT.Email,
                ReceiverName = EADT.ContactFirstName + " " + EADT.ContactLastName
            }).ToList();

            var Receivers = ManifestData.GroupBy(a => a.shipToEmail).Select(x => new ManifestTrackingModel
            {
                eCommerceShipmentId = x.Select(c => c.eCommerceShipmentId).First(),
                TrackingNo          = x.Select(c => c.TrackingNo).First(),
                FrayteNo            = x.Select(c => c.FrayteNo).First(),
                CreatedOnUtc        = x.Select(c => c.CreatedOnUtc).First(),
                UserId       = x.Select(c => c.UserId).First(),
                shipToEmail  = x.Select(c => c.shipToEmail).First(),
                ReceiverName = x.Select(c => c.ReceiverName).First()
            }).ToList();

            var TotalShipment = ManifestData.GroupBy(a => a.eCommerceShipmentId).Select(x => new ManifestTrackingModel
            {
                eCommerceShipmentId = x.Select(c => c.eCommerceShipmentId).First(),
                TrackingNo          = x.Select(c => c.TrackingNo).First(),
                FrayteNo            = x.Select(c => c.FrayteNo).First(),
                CreatedOnUtc        = x.Select(c => c.CreatedOnUtc).First(),
                UserId = x.Select(c => c.UserId).First()
            }).ToList();

            List <ManifestTrackingReceiver> MTR = new List <ManifestTrackingReceiver>();

            foreach (var RCV in Receivers)
            {
                var TrackingDescription     = dbContext.eCommerceTrackings.Where(a => a.eCommerceShipmentId == RCV.eCommerceShipmentId).FirstOrDefault();
                ManifestTrackingReceiver MT = new ManifestTrackingReceiver();
                MT.CustomerId   = RCV.UserId;
                MT.ReceiverMail = RCV.shipToEmail;
                MT.ReceiverName = RCV.ReceiverName;
                //MT.TrackingDescription = RCV.TrackingDescription;
                MT.TrackingDescription = TrackingDescription.TrackingDescription;
                MT.ReceiverTrackingNo  = new List <ManifestReceiverTrackingNos>();
                foreach (var TS in TotalShipment)
                {
                    ManifestReceiverTrackingNos MRT = new ManifestReceiverTrackingNos();
                    MRT.ReceiverTrackingNo = TS.TrackingNo;
                    MRT.TrackingUrl        = AppSettings.TrackingUrl + "/tracking-hub//" + TS.TrackingNo + "/";
                    MT.ReceiverTrackingNo.Add(MRT);
                }
                MTR.Add(MT);
            }

            //Send mail to receiver
            foreach (var MData in MTR)
            {
                SendMailToReceivers(MData);
            }

            return(MTR);
        }