public async Task <ActiveSchedule> ToActiveScheduleFromDealershipScheduleNoUser(CompleteScheduleByDealershipNoUserViewModel model) { return(new ActiveSchedule { CreationDate = DateTime.Now, IsActive = true, ScheduleDay = model.Day, Remarks = model.Remarks, Services = await _serviceRepository.GetByIdAsync(model.ServiceId), Mileage = model.Mileage, }); }
public async Task <IActionResult> CompleteScheduleByDealershipNoUser(CompleteScheduleByDealershipNoUserViewModel model) { if (ModelState.IsValid) { var service = await _serviceRepository.GetByIdAsync(model.ServiceId); if (!await _scheduleDetailRepository.IsDuplicatedSchedulesForSameServiceAsync(model.VehicleId, model.ServiceId)) { var activeSchedule = await _converterHelper.ToActiveScheduleFromDealershipScheduleNoUser(model); var vehicle = await _vehicleRepository.GetByIdAsync(model.VehicleId); var dealership = await _dealershipRepository.GetByIdAsync(model.DealershipId); var scheduleDetail = _converterHelper.ToScheduleDetail(vehicle, activeSchedule, dealership); try { scheduleDetail.ActiveSchedule = activeSchedule; await _scheduleDetailRepository.CreateAsync(scheduleDetail); return(RedirectToAction("ShowScheduleForDealership")); } catch (Exception ex) { if (ex.InnerException.Message.Contains("duplicate")) { ModelState.AddModelError(string.Empty, "There is already a schedule for that service"); } } } else { ViewBag.ServiceDuplicated = $"There is already a schedule registered for {service.ServiceType}, please chose another or change the current schedule"; var dealership = await _dealershipRepository.GetByIdAsync(model.DealershipId); var serviceReturn = await _serviceRepository.GetByIdAsync(model.ServiceId); var vehicles = _vehicleRepository.GetUserVehicles(model.UserId); var newModel = _converterHelper.ToCompleteScheduleByDealershipViewModel(vehicles, dealership, serviceReturn); var dates = await GetDisabledDaysAsync(serviceReturn.Id, dealership.Id); var days = Newtonsoft.Json.JsonConvert.SerializeObject(dates); newModel.DaysToDisable = days; return(View(newModel)); } } var dealership1 = await _dealershipRepository.GetByIdAsync(model.DealershipId); var serviceReturn1 = await _serviceRepository.GetByIdAsync(model.ServiceId); var vehicles1 = _vehicleRepository.GetUserVehicles(model.UserId); var newModel1 = _converterHelper.ToCompleteScheduleByDealershipViewModel(vehicles1, dealership1, serviceReturn1); var dates1 = await GetDisabledDaysAsync(serviceReturn1.Id, dealership1.Id); var days1 = Newtonsoft.Json.JsonConvert.SerializeObject(dates1); newModel1.DaysToDisable = days1; return(View(newModel1)); }