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)); }