public IActionResult EditRouteForDelegation(NewRouteVm routeVm)
 {
     if (!ModelState.IsValid)
     {
         _delegService.SetParametersToVm(routeVm);
         return(View(routeVm));
     }
     _delegService.UpdateRoute(routeVm);
     return(RedirectToAction("EditDelegation", new { id = routeVm.DelegationId }));
 }
        public void UpdateRoute(NewRouteVm routeVm)
        {
            if (!IsDelegationEditableById(routeVm.DelegationId))
            {
                return;
            }
            var route = _mapper.Map <Route>(routeVm);

            _delegationRepo.UpdateRoute(route);
        }
        public NewRouteVm SetParametersToVm(NewRouteVm routeVm)
        {
            var del = GetDelegationById(routeVm.DelegationId);

            routeVm.TransportTypes       = GetTransportTypes().ToList();
            routeVm.RouteTypes           = GetRouteTypes().ToList();
            routeVm.RouteDetail.Vehicles = _vehRepo.GetVehiclesByEmployee(del.EmployeeId)
                                           .ProjectTo <VehicleForListVm>(_mapper.ConfigurationProvider).ToList();
            return(routeVm);
        }
        public int AddRoute(NewRouteVm model)
        {
            if (!IsDelegationEditableById(model.DelegationId))
            {
                return(0);
            }
            var route = _mapper.Map <Route>(model);
            var id    = _delegationRepo.AddRoute(route);

            return(id);
        }
        public IActionResult NewRoute(int id)
        {
            var isEditable = _delegService.IsDelegationEditableById(id);
            var del        = _delegService.GetDelegationById(id);

            if (del == null && !isEditable)
            {
                _logger.LogInformation("Can't add new route to the delegation - delegation dosen't exist or is closed");
                return(RedirectToAction("Index"));
            }

            var model = new NewRouteVm()
            {
                DelegationId = id,
                RouteDetail  = new NewRouteDetailVm()
            };

            model = _delegService.SetParametersToVm(model);
            return(PartialView("AddNewRouteForDelegation", model));
        }