public static TransportOrderViewModel BindTransportOrderViewModel(TransportOrder transportOrder, string datePref, List <WorkflowStatus> statuses) { TransportOrderViewModel transportOrderViewModel = null; if (transportOrder != null) { transportOrderViewModel = new TransportOrderViewModel(); transportOrderViewModel.BidDocumentNo = transportOrder.BidDocumentNo; transportOrderViewModel.OrderDate = transportOrder.OrderDate; transportOrderViewModel.OrderDateET = transportOrder.OrderDate.ToCTSPreferedDateFormat(datePref); transportOrderViewModel.ContractNumber = transportOrder.ContractNumber; transportOrderViewModel.PerformanceBondReceiptNo = transportOrder.PerformanceBondReceiptNo; transportOrderViewModel.OrderExpiryDate = transportOrder.OrderExpiryDate; transportOrderViewModel.OrderExpiryDateET = transportOrder.OrderExpiryDate.ToCTSPreferedDateFormat(datePref); transportOrderViewModel.Transporter = transportOrder.Transporter.Name; transportOrderViewModel.RequestedDispatchDate = transportOrder.RequestedDispatchDate; transportOrderViewModel.RequestedDispatchDateET = transportOrder.RequestedDispatchDate.ToCTSPreferedDateFormat(datePref); transportOrderViewModel.TransporterID = transportOrder.TransporterID; transportOrderViewModel.TransportOrderNo = transportOrder.TransportOrderNo; transportOrderViewModel.TransportOrderID = transportOrder.TransportOrderID; transportOrderViewModel.StatusID = transportOrder.StatusID; transportOrderViewModel.StartDate = transportOrder.StartDate.ToCTSPreferedDateFormat(datePref); transportOrderViewModel.EndDate = transportOrder.EndDate.ToCTSPreferedDateFormat(datePref); transportOrderViewModel.Status = transportOrder.StatusID.HasValue? statuses.Find(t => t.StatusID == transportOrder.StatusID.Value).Description:string.Empty; } return(transportOrderViewModel); }
public ActionResult CreateTransportOrder() { if (Session["TenantId"] == null) { TempData["Info"] = "Nastąpiło automatyczne wylogowanie. Proszę ponownie się zalogować"; return(RedirectToAction("Login", "Home")); } else { HorseplayContext db = new HorseplayContext(); TransportOrderViewModel vm = new TransportOrderViewModel(); vm = FillTransportOrderViewModel(vm); return(View(vm)); } }
public ActionResult MakeOrder(TransportOrderViewModel order) { try { var orderDto = new TransportOrderDTO { TransportType = (int)order.TransportType, DepartureDate = order.DepartureDate, Email = System.Web.HttpContext.Current.User.Identity.Name }; orderService.OrderTransport(orderDto); TempData["successful"] = string.Format("Спасибо, Ваш заказ успешно обработан."); return(RedirectToAction("Index", "Home")); } catch (ValidationException ex) { return(Content(ex.Message)); } }
public TransportOrderViewModel FillTransportOrderViewModel(TransportOrderViewModel vm, int id = 0) { HorseplayContext db = new HorseplayContext(); int tenantId = (int)Session["TenantId"]; var emps = db.Employees.Where(e => e.TenantId == tenantId); List <Employee> employees = new List <Employee>(); if (emps.Any()) { foreach (var emp in emps) { employees.Add(emp); } } List <Vehicle> vehicles = new List <Vehicle>(); var vehs = db.Vehicles.Where(v => v.TenantId == tenantId && (int)v.Type != 1); if (vehs.Any()) { foreach (var veh in vehs) { vehicles.Add(veh); } } List <Vehicle> trailers = new List <Vehicle>(); var trails = db.Vehicles.Where(v => v.TenantId == tenantId && (int)v.Type == 1); if (trails.Any()) { foreach (var tr in trails) { trailers.Add(tr); } } List <Company> carriers = new List <Company>(); var cars = db.Companies.Where(v => v.TenantId == tenantId && (int)v.Type == 1); if (cars.Any()) { foreach (var car in cars) { carriers.Add(car); } } List <Company> customers = new List <Company>(); var custs = db.Companies.Where(v => v.TenantId == tenantId && (int)v.Type == 0); if (custs.Any()) { foreach (var cust in custs) { customers.Add(cust); } } vm.Employees = employees; vm.Vehicles = vehicles; vm.Trailers = trailers; vm.Carriers = carriers; vm.Customers = customers; if (id > 0) { var tos = db.TransportOrders .Include(to => to.Truck) .Include(to => to.Trailer) .Include(to => to.PrimaryDriver) .Include(to => to.SecondaryDriver) .Include(to => to.Carrier) .Include(to => to.Customer) .Include(to => to.Route) .Include(to => to.Route.Stops) .Include(to => to.Route.Stops.Select(s => s.Address)) .Where(t => t.TenantId == tenantId && t.TransportOrderId == id); if (tos.Any()) { vm.TransportOrder = tos.FirstOrDefault(); if (vm.TransportOrder.Carrier != null) { vm.SelectedCarrier = vm.TransportOrder.Carrier.CompanyId; } if (vm.TransportOrder.Customer != null) { vm.SelectedCustomer = vm.TransportOrder.Customer.CompanyId; } if (vm.TransportOrder.PrimaryDriver != null) { vm.SelectedPrimaryDriver = vm.TransportOrder.PrimaryDriver.EmployeeId; } if (vm.TransportOrder.SecondaryDriver != null) { vm.SelectedSecondaryDriver = vm.TransportOrder.SecondaryDriver.EmployeeId; } if (vm.TransportOrder.Truck != null) { vm.SelectedTruck = vm.TransportOrder.Truck.VehicleId; } if (vm.TransportOrder.Trailer != null) { vm.SelectedTrailer = vm.TransportOrder.Trailer.VehicleId; } } } return(vm); }
public ActionResult CreateTransportOrder(TransportOrderViewModel vm) { if (!ModelState.IsValid) { vm = FillTransportOrderViewModel(vm); return(View("CreateTransportOrder", vm)); } else { HorseplayContext db = new HorseplayContext(); vm.Rebuild(db); if (vm.TransportOrder.Route.Stops.Any()) { int userId = (int)Session["UserId"]; int tenantId = (int)Session["TenantId"]; int order = 0; //if there are any stops, let's create them List <RouteStop> stops = new List <RouteStop>(); foreach (var stop in vm.TransportOrder.Route.Stops) { Address address = new Address(); address.Name = stop.Address.Name; address.Street = stop.Address.Street; address.ZipCode = stop.Address.ZipCode; address.City = stop.Address.City; address.Country = stop.Address.Country; address.AddedBy = userId; address.TenantId = tenantId; address.DateAdded = DateTime.Now; RouteStop rs = new RouteStop(); rs.Address = address; rs.AddedBy = userId; rs.DepartureDate = stop.DepartureDate; rs.ArrivalDate = stop.ArrivalDate; rs.StopType = stop.StopType; rs.TenantId = tenantId; rs.DateAdded = DateTime.Now; rs.Order = order; stops.Add(rs); order++; } Route Route = new Route() { AddedBy = userId, TenantId = tenantId, DateAdded = DateTime.Now, Length = vm.TransportOrder.Route.Length, Stops = stops }; TransportOrder to = new TransportOrder() { AddedBy = userId, DateAdded = DateTime.Now, TenantId = tenantId, Type = vm.TransportOrder.Type, Route = Route, Cost = vm.TransportOrder.Cost, Truck = vm.IntToVehicle(vm.SelectedTruck), Trailer = vm.IntToVehicle(vm.SelectedTrailer), PrimaryDriver = vm.IntToEmployee(vm.SelectedPrimaryDriver), SecondaryDriver = vm.IntToEmployee(vm.SelectedSecondaryDriver), Remarks = vm.TransportOrder.Remarks, Carrier = vm.IntToCarrier(vm.SelectedCarrier), Customer = vm.IntToCustomer(vm.SelectedCustomer) }; db.TransportOrders.Add(to); try { db.SaveChanges(); } catch (DbEntityValidationException e) { foreach (var error in e.EntityValidationErrors) { foreach (var propertyError in error.ValidationErrors) { Console.WriteLine($"{propertyError.PropertyName} had the following issue: {propertyError.ErrorMessage}"); } } } } return(RedirectToAction("GetTransportOrders")); } }