public async Task <ActionResult> CompleteSchedule(CompleteScheduleViewModel model)
        {
            if (ModelState.IsValid)
            {
                var service = await _serviceRepository.GetByIdAsync(model.ServiceId);

                var activeSchedule = _converterHelper.ToActiveSchedule(model, service);
                var vehicle        = await _vehicleRepository.GetByIdAsync(model.VehicleId);

                var dealership = await _dealershipRepository.GetByIdAsync(model.DealershipId);

                var scheduleDetail = _converterHelper.ToScheduleDetail(vehicle, activeSchedule, dealership);


                try
                {
                    await _scheduleDetailRepository.CreateAsync(scheduleDetail);

                    return(RedirectToAction(nameof(Index)));
                }
                catch (Exception ex)
                {
                    if (ex.InnerException.Message.Contains("duplicate"))
                    {
                        ModelState.AddModelError(string.Empty, "There is already a schedule for that service");
                        return(View(model));
                    }
                }
            }
            return(View(model));
        }
예제 #2
0
 public ActiveSchedule ToActiveSchedule(CompleteScheduleViewModel model, Service service)
 {
     return(new ActiveSchedule
     {
         IsActive = true,
         CreationDate = DateTime.Now,
         ScheduleDay = model.Day,
         Remarks = model.Remarks,
         Services = service,
         Mileage = model.Mileage
     });
 }