Beispiel #1
0
        public List <ManifestTrackingModel> ManifestTracking(ManifestTrackingModel MTM)
        {
            // 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 == MTM.ManifestId
                                select new ManifestTrackingModel
            {
                eCommerceShipmentId = ECS.eCommerceShipmentId,
                TrackingNo = TN.TrackingNo,
                FrayteNo = ECS.FrayteNumber,
                CreatedOnUtc = DateTime.UtcNow,
                TrackingDescription = MTM.TrackingDescription,
                TrackingDescriptionCode = MTM.TrackingDescriptionCode,
                TrackingMode = MTM.TrackingMode,
                UserId = MTM.UserId,
                shipToEmail = EADT.Email
            }).ToList();

            var MD = 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(),
                TrackingDescription = x.Select(c => c.TrackingDescription).First(),
                UserId                  = x.Select(c => c.UserId).First(),
                TrackingMode            = x.Select(c => c.TrackingMode).First(),
                TrackingDescriptionCode = x.Select(c => c.TrackingDescriptionCode).First()
            }).ToList();

            //Save ManifestTracking

            var SaveStatus = SaveManifestTracking(MD);

            //Mail send to Receiver
            if (SaveStatus.Status == true)
            {
                Process.Start(AppSettings.eCommerceManifestBatchProcess, MTM.ManifestId.ToString());
            }

            return(MD);
        }
 public List <ManifestTrackingModel> ManifestTracking(ManifestTrackingModel MTM)
 {
     return(new ManifestTrackingRepository().ManifestTracking(MTM));
 }