コード例 #1
0
 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,
     });
 }
コード例 #2
0
        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));
        }