public FrayteResult SendPreAlertEmail(TradelanePreAlertInitial preAlerDetail) { var emailModel = new TradelaneEmailRepository().TradelaneEmailObj(preAlerDetail.TradelaneShipmentId); FrayteResult result = new TradelaneEmailRepository().SendEmail_E5(emailModel, preAlerDetail); return(result); }
public IHttpActionResult PlaceBooking(TradelaneBooking shipment) { shipment = new TradelaneBookingRepository().SaveShipment(shipment, ""); if (shipment.ShipmentStatusId != (int)FrayteTradelaneShipmentStatus.Draft) { TradelaneEmailModel model = new TradelaneEmailRepository().TradelaneEmailObj(shipment.TradelaneShipmentId); // Fill all the required info in the email model model.ShipmentDetail.ShipFrom.IsMailSend = shipment.ShipFrom.IsMailSend; model.ShipmentDetail.ShipTo.IsMailSend = shipment.ShipTo.IsMailSend; model.ShipmentDetail.NotifyParty.IsMailSend = shipment.NotifyParty.IsMailSend; new TradelaneEmailRepository().FillBookingInformationEmailModel(model); if (shipment.ShipmentStatusId == (int)FrayteTradelaneShipmentStatus.Pending) { // Send Shipment info email created by new TradelaneEmailRepository().SendEmail_E1(model); // Send Booking Confirmation email to customer new TradelaneEmailRepository().FillBookingConfirmationEmailModel(model); new TradelaneEmailRepository().SendEmail_E2(model); } else { // Customer Confirmation email new TradelaneEmailRepository().SendEmail_E2_1(model); // Send MAWB AllocationEMail new TradelaneEmailRepository().FillModel_E3(model); new TradelaneEmailRepository().SendEmail_E3(model); // Add shipment tracking new TradelaneBookingRepository().SaveShipmentTracking(shipment); // Add FLight Detail new TradelaneBookingRepository().SaveShipmentFlightDetail(shipment); } } return(Ok(shipment)); }
public FrayteResult MawbCorrection(TradelaneClaimShipmentModel CorrectionModel) { FrayteResult FR = new FrayteResult(); FR.Status = false; var Res = new TradelaneEmailRepository().TradelaneEmailObj(CorrectionModel.TradelaneShipmentId); var MAList = dbContext.TradelaneShipmentAllocations.Where(a => a.TradelaneShipmentId == CorrectionModel.TradelaneShipmentId).ToList(); var File = GetLatestMawbDocuments(CorrectionModel.TradelaneShipmentId); if (Res.ShipmentDetail.ShipmentHandlerMethod.ShipmentHandlerMethodId == 5) { if (MAList.FirstOrDefault().AgentId > 0) { new TradelaneEmailRepository().SendMawbCorrectionShipment(MAList.FirstOrDefault(), CorrectionModel, File.FilePath); } if (MAList.Skip(1).FirstOrDefault().AgentId > 0) { new TradelaneEmailRepository().SendMawbCorrectionShipment(MAList.Skip(1).FirstOrDefault(), CorrectionModel, File.FilePath); } FR.Status = true; } else { if (MAList.FirstOrDefault().AgentId > 0) { new TradelaneEmailRepository().SendMawbCorrectionShipment(MAList.FirstOrDefault(), CorrectionModel, File.FilePath); } FR.Status = true; } if (FR.Status == true) { var Result = dbContext.TradelaneShipments.Where(a => a.TradelaneShipmentId == CorrectionModel.TradelaneShipmentId).FirstOrDefault(); if (Result != null) { Result.IsMawbCorrection = true; dbContext.Entry(Result).State = System.Data.Entity.EntityState.Modified; dbContext.SaveChanges(); } } return(FR); }
public TradelaneAgentEmailModel GetAgentsMail(int TradelaneShipmentId) { TradelaneAgentEmailModel AE = new TradelaneAgentEmailModel(); var Res = new TradelaneEmailRepository().TradelaneEmailObj(TradelaneShipmentId); var AgentName = ""; var CreatedByMail = ""; var CreatedBy = (from Usr in dbContext.Users join usrAdd in dbContext.UserAdditionals on Usr.UserId equals usrAdd.UserId join Usr1 in dbContext.Users on usrAdd.OperationUserId equals Usr1.UserId where Usr.UserId == Res.ShipmentDetail.CustomerId select new { Usr1.Email }).FirstOrDefault(); if (CreatedBy != null) { AE.staff = CreatedBy.Email; } if (Res.ShipmentDetail.ShipmentHandlerMethod.ShipmentHandlerMethodId == 5) { var Leg1Agent = dbContext.TradelaneShipmentAllocations.Where(a => a.TradelaneShipmentId == Res.ShipmentDetail.TradelaneShipmentId && a.LegNum == "Leg1").FirstOrDefault(); if (Leg1Agent != null) { var AgentDetail1 = (from Usr in dbContext.Users where Usr.UserId == Leg1Agent.AgentId select new { Usr.Email, Usr.ContactName }).FirstOrDefault(); if (AgentDetail1 != null) { AE.Agent = AgentDetail1.Email; AE.AgentName = AgentDetail1.ContactName; } } var Leg2Agent = dbContext.TradelaneShipmentAllocations.Where(a => a.TradelaneShipmentId == Res.ShipmentDetail.TradelaneShipmentId && a.LegNum == "Leg2").FirstOrDefault(); if (Leg2Agent != null) { var AgentDetail2 = (from Usr in dbContext.Users where Usr.UserId == Leg2Agent.AgentId select new { Usr.Email, Usr.ContactName }).FirstOrDefault(); if (AgentDetail2 != null) { AE.Agent = AE.Agent + ", " + AgentDetail2.Email; AE.AgentName = AgentDetail2.ContactName; } } } else { var LegAgent = dbContext.TradelaneShipmentAllocations.Where(a => a.TradelaneShipmentId == Res.ShipmentDetail.TradelaneShipmentId).FirstOrDefault(); if (LegAgent != null) { var AgentDetail = (from Usr in dbContext.Users where Usr.UserId == LegAgent.AgentId select new { Usr.Email, Usr.ContactName }).FirstOrDefault(); if (AgentDetail != null) { AE.Agent = AgentDetail.Email; AE.AgentName = AgentDetail.ContactName; } } } return(AE); }
public IHttpActionResult SaveTradelaneIntegration(ExpressTradelaneIntegration integratedShipment) { TradelaneBooking shipment = new TradelaneBooking(); new ExpressManifestRepository().MapIntegratedShipmentToTradelaneShipment(integratedShipment, shipment); TradelaneBooking dbShipment = new TradelaneBookingRepository().SaveShipment(shipment, "Express"); if (!dbShipment.Error.Status) { TradelaneEmailModel model = new TradelaneEmailRepository().TradelaneEmailObj(dbShipment.TradelaneShipmentId); // Fill all the required info in the email model integratedShipment.MAWBList.FirstOrDefault().TradelaneId = dbShipment.TradelaneShipmentId; // model.ShipmentDetail.ShipFrom = new TradelBookingAdress(); model.ShipmentDetail.ShipFrom.IsMailSend = dbShipment.ShipFrom.IsMailSend; // model.ShipmentDetail.ShipTo = new TradelBookingAdress(); model.ShipmentDetail.ShipTo.IsMailSend = dbShipment.ShipTo.IsMailSend; model.ShipmentDetail.NotifyParty.IsMailSend = dbShipment.NotifyParty.IsMailSend; new TradelaneEmailRepository().FillBookingInformationEmailModel(model); // Update Status for AWB // Send Shipment info email created by // new TradelaneEmailRepository().SendEmail_E1(model); // Customer Confirmation email new TradelaneEmailRepository().SendEmail_E2_1(model); // Send MAWB AllocationEMail new TradelaneEmailRepository().FillModel_E3(model); new TradelaneEmailRepository().SendEmail_E3(model); // Add shipment tracking new TradelaneBookingRepository().SaveShipmentTracking(shipment); // Add FLight Detail new TradelaneBookingRepository().SaveShipmentFlightDetail(shipment); new ExpressManifestRepository().UpdateExpressShipmentStatus(integratedShipment.Shipment.Packages); // Update MAWBAllocation var File = new TradelaneShipmentsController().CreateDocument(dbShipment.TradelaneShipmentId, 0, FrayteTradelaneShipmentDocumentEnum.CoLoadForm, ""); var FilePath = AppSettings.UploadFolderPath + "/Tradelane" + "/" + integratedShipment.MAWBList.FirstOrDefault().TradelaneId + "/" + File.FileName; if (File.FileName != null && File.FileName != "") { } else { FilePath = ""; } new MawbAllocationRepository().SaveExpressMawbAllocation(integratedShipment.MAWBList, FilePath, "Express"); // update tradelane Shipment id in express table new ExpressManifestRepository().SaveExportManifest(dbShipment.TradelaneShipmentId, integratedShipment.Shipment); var file = new TradelaneShipmentsController().CreateDocument(dbShipment.TradelaneShipmentId, 0, FrayteTradelaneShipmentDocumentEnum.ExportManifest, ""); new TradelaneBookingRepository().SaveShipmentDocument(dbShipment.TradelaneShipmentId, FrayteTradelaneShipmentDocumentEnum.ExportManifest, file.FileName, integratedShipment.Shipment.CreatedBy); var file1 = new TradelaneShipmentsController().CreateDocument(dbShipment.TradelaneShipmentId, dbShipment.CreatedBy, FrayteTradelaneShipmentDocumentEnum.DriverManifest, ""); new TradelaneBookingRepository().SaveShipmentDocument(dbShipment.TradelaneShipmentId, FrayteTradelaneShipmentDocumentEnum.DriverManifest, file1.FileName, integratedShipment.Shipment.CreatedBy); new MawbAllocationRepository().SendMawbAllocationMail(integratedShipment.MAWBList, FilePath, "Express"); } return(Ok(integratedShipment)); }
public IHttpActionResult CustomerAction(FrayteCustomerActionShippment confirmationDetail) { try { int shipmentId = new TradelaneBookingRepository().CustomerAction(confirmationDetail); if (shipmentId > 0) { TradelaneEmailRepository shipmentEmailRepo = new TradelaneEmailRepository(); TradelaneEmailModel emailModel = shipmentEmailRepo.TradelaneEmailObj(shipmentId); if (emailModel != null) { new TradelaneEmailRepository().FillBookingInformationEmailModel(emailModel); if (emailModel.ShipmentDetail.ShipmentStatusId == (int)FrayteTradelaneShipmentStatus.ShipmentBooked) { return(Ok("AlreadyConfirmed")); } else if (emailModel.ShipmentDetail.ShipmentStatusId == (int)FrayteTradelaneShipmentStatus.Rejected) { return(Ok("AlreadyRejected")); } else { if (confirmationDetail.ActionType == ShipmentCustomerAction.Confirm) { // set shipment confirm status new TradelaneBookingRepository().SetShipmentStatus(shipmentId, confirmationDetail.ActionType); //Customer Confirmation email shipmentEmailRepo.SendEmail_E2_1(emailModel); //Thank you email to customer shipmentEmailRepo.SendEmail_E2_3(emailModel); //MAWB allocation email shipmentEmailRepo.SendEmail_E3(emailModel); //Add shipment tracking new TradelaneBookingRepository().SaveShipmentTracking(emailModel.ShipmentDetail); //Add FLight Detail new TradelaneBookingRepository().SaveShipmentFlightDetail(emailModel.ShipmentDetail); } else if (confirmationDetail.ActionType == ShipmentCustomerAction.Reject) { //Set shipment rejected status new TradelaneBookingRepository().SetShipmentStatus(shipmentId, confirmationDetail.ActionType); //Customer Rejection email shipmentEmailRepo.SendEmail_E2_2(emailModel); } return(Ok()); } } return(BadRequest()); } else { return(BadRequest()); } } catch (Exception ex) { return(BadRequest()); } }
public FrayteResult SaveTradelaneShipmentTracking(TradelaneOperationslTrackingModel TM) { FrayteResult FR = new FrayteResult(); FR.Status = false; var Result = dbContext.TradelaneShipmentTrackings.Where(a => a.TradelaneShipmentTrackingId == TM.TradelaneShipmentTrackingId).FirstOrDefault(); if (Result != null) { Result.TradlaneShipmentId = TM.TradelaneShipmentId; Result.TrackingDescription = TM.TrackingDescription; Result.TrackingCode = TM.TrackingCode; Result.CreatedOnUtc = TM.CreatedOnUtc; Result.FlightNumber = TM.FlightNo; Result.CreatedBy = TM.CreatedBy; Result.Weight = TM.Weight; Result.Pieces = TM.Pieces; Result.AirportCode = TM.AirportCode; dbContext.Entry(Result).State = System.Data.Entity.EntityState.Modified; dbContext.SaveChanges(); //if(Result.TrackingCode == "DLV") //{ // var res = dbContext.TradelaneShipments.Where(a => a.TradelaneShipmentId == TM.TradelaneShipmentId).FirstOrDefault(); // if(res != null) // { // res.ShipmentStatusId = 35; // dbContext.Entry(res).State = System.Data.Entity.EntityState.Modified; // dbContext.SaveChanges(); // } //} FR.Status = true; } else { TradelaneShipmentTracking TlST = new TradelaneShipmentTracking(); TlST.TradlaneShipmentId = TM.TradelaneShipmentId; TlST.TrackingDescription = TM.TrackingDescription; TlST.TrackingCode = TM.TrackingCode; TlST.FlightNumber = TM.FlightNo; TlST.CreatedOnUtc = DateTime.UtcNow; TlST.CreatedBy = TM.CreatedBy; TlST.AirportCode = TM.AirportCode; TlST.Weight = TM.Weight; TlST.Pieces = TM.Pieces; dbContext.TradelaneShipmentTrackings.Add(TlST); dbContext.SaveChanges(); if (TM.TrackingCode == "DEP") { var res = dbContext.TradelaneShipments.Where(a => a.TradelaneShipmentId == TM.TradelaneShipmentId).FirstOrDefault(); if (res != null) { res.ShipmentStatusId = 30; //res.ShipmentStatusId = 31; res.IsMawbCorrection = false; dbContext.Entry(res).State = System.Data.Entity.EntityState.Modified; dbContext.SaveChanges(); } } if (TM.TrackingCode == "INT") { var res = dbContext.TradelaneShipments.Where(a => a.TradelaneShipmentId == TM.TradelaneShipmentId).FirstOrDefault(); if (res != null) { res.ShipmentStatusId = 31; res.IsMawbCorrection = false; dbContext.Entry(res).State = System.Data.Entity.EntityState.Modified; dbContext.SaveChanges(); } } if (TM.TrackingCode == "ARV") { var res = dbContext.TradelaneShipments.Where(a => a.TradelaneShipmentId == TM.TradelaneShipmentId).FirstOrDefault(); if (res != null) { res.ShipmentStatusId = 32; //res.ShipmentStatusId = 31; res.IsMawbCorrection = false; dbContext.Entry(res).State = System.Data.Entity.EntityState.Modified; dbContext.SaveChanges(); } } if (TM.TrackingCode == "DLV") { var res = dbContext.TradelaneShipments.Where(a => a.TradelaneShipmentId == TM.TradelaneShipmentId).FirstOrDefault(); if (res != null) { res.ShipmentStatusId = 35; res.IsMawbCorrection = false; dbContext.Entry(res).State = System.Data.Entity.EntityState.Modified; dbContext.SaveChanges(); } // Update Express AWB status if status is delivered new ExpressManifestRepository().UpdateExpressAWbStatus(TM.TradelaneShipmentId); } FR.Status = true; //send mail of add tracking if (FR.Status) { var Res = new TradelaneEmailRepository().SendUpdateTrackingEmail(TM); if (Res.Status == false) { //FR.Errors = new List<string>(); //FR.Errors.Add("Email does not exist for this Operational Status in tracking configuration"); //DeleteTradelaneOperationalTracking(TlST.TradelaneShipmentTrackingId); } } } return(FR); }