public ActionResult ChangeTransporters([DataSourceRequest] DataSourceRequest request, List <SubstituteTransporterOrder> listOfSubTransporterOrders, int changedTransportOrderID) { var changedTransportOrderObj = _transportOrderService.FindById(changedTransportOrderID); var returnedObj = new List <TransportOrder>(); foreach (var subTransporterOrders in listOfSubTransporterOrders) { var transporterCount = subTransporterOrders.TransportersStandingList.Count(); foreach (var transporter in subTransporterOrders.TransportersStandingList) { changedTransportOrderObj = _transportOrderService.FindById(changedTransportOrderID); var transporterObj = _transporterService.FindById(transporter.TransporterID); var transportOrder = _transportOrderService.Get(t => t.TransporterID == transporterObj.TransporterID && t.StatusID == (int)TransportOrderStatus.Draft). FirstOrDefault(); if (transportOrder != null) { foreach (var transportOrderDetail in changedTransportOrderObj.TransportOrderDetails.ToList()) { if (transportOrderDetail.FDP.AdminUnitID == subTransporterOrders.WoredaID) { var transportOrderDetailObj = new TransportOrderDetail { CommodityID = transportOrderDetail.CommodityID, FdpID = transportOrderDetail.FdpID, RequisitionID = transportOrderDetail.RequisitionID, QuantityQtl = transportOrderDetail.QuantityQtl.ToPreferedWeightUnit() / transporterCount, TariffPerQtl = transportOrderDetail.TariffPerQtl, SourceWarehouseID = transportOrderDetail.Hub.HubID, //transportOrderDetailObj.ZoneID = transportOrderDetail.ReliefRequisition.ZoneID; }; transportOrder.TransportOrderDetails.Add(transportOrderDetailObj); _transportOrderService.EditTransportOrder(transportOrder); } } returnedObj.Add(transportOrder); } else { var transportOrderObj = new TransportOrder { TransporterID = transporter.TransporterID, OrderDate = DateTime.Today, TransportOrderNo = Guid.NewGuid().ToString(), OrderExpiryDate = DateTime.Today.AddDays(10), BidDocumentNo = "BID-DOC-No", PerformanceBondReceiptNo = "PERFORMANCE-BOND-NO", ContractNumber = Guid.NewGuid().ToString(), TransporterSignedDate = DateTime.Today, RequestedDispatchDate = DateTime.Today, ConsignerDate = DateTime.Today, StatusID = (int)TransportOrderStatus.Draft, StartDate = DateTime.Today, EndDate = DateTime.Today.AddDays(10), }; _transportOrderService.AddTransportOrder(transportOrderObj); var transporterName = _transporterService.FindById(transportOrderObj.TransporterID).Name; transportOrderObj.TransportOrderNo = string.Format("TRN-ORD-{0}", transportOrderObj.TransportOrderID); transportOrderObj.ContractNumber = string.Format("{0}/{1}/{2}/{3}", "LTCD", DateTime.Today.Day, DateTime.Today.Year, transporterName.Substring(0, 2)); _transportOrderService.EditTransportOrder(transportOrderObj); //var transportOrderDetailList = subTransporterOrders.TransportOrderDetails; foreach (var transportOrderDetail in changedTransportOrderObj.TransportOrderDetails.ToList()) { if (transportOrderDetail.FDP.AdminUnitID == subTransporterOrders.WoredaID) { var transportOrderDetailObj = new TransportOrderDetail { TransportOrderID = transportOrderObj.TransportOrderID, CommodityID = transportOrderDetail.CommodityID, FdpID = transportOrderDetail.FdpID, RequisitionID = transportOrderDetail.RequisitionID, QuantityQtl = transportOrderDetail.QuantityQtl.ToPreferedWeightUnit() / transporterCount, TariffPerQtl = transportOrderDetail.TariffPerQtl, SourceWarehouseID = transportOrderDetail.Hub.HubID }; //transportOrderDetail.ZoneID = reliefRequisitionDetail.ReliefRequisition.ZoneID; _transportOrderDetailService.AddTransportOrderDetail(transportOrderDetailObj); } } returnedObj.Add(transportOrderObj); } } } changedTransportOrderObj.StatusID = (int)TransportOrderStatus.Failed; _transportOrderService.EditTransportOrder(changedTransportOrderObj); return(RedirectToAction("Index", "TransportOrder", returnedObj)); //return Json(returnedObj.ToDataSourceResult(request), JsonRequestBehavior.AllowGet); }