Ejemplo n.º 1
0
 public async Task <Repair> ToRepairAsync(StartRepairViewModel model)
 {
     return(new Repair
     {
         IsActive = true,
         CreationDate = DateTime.Now,
         Department = await _departmentRepository.GetByIdAsync(model.DepartmentId),
     });
 }
Ejemplo n.º 2
0
        public async Task <IActionResult> StartRepair(StartRepairViewModel model)
        {
            var scheduleDetail = await _scheduleDetailRepository.GetScheduleDetailByActiveSchedule(model.ActiveScheduleId);

            if (scheduleDetail == null)
            {
                return(NotFound());
            }

            var activeSchedule = await _activeScheduleRepository.GetByIdAsync(model.ActiveScheduleId);

            if (activeSchedule == null)
            {
                return(NotFound());
            }


            var repair = await _converterHelper.ToRepairAsync(model);

            var repairSchedule = _converterHelper.ToRepairSchedule(scheduleDetail, repair);

            try
            {
                repair.CreationDate = DateTime.Now;
                await _repairScheduleRepository.CreateAsync(repairSchedule);

                scheduleDetail.IsActive = false;
                activeSchedule.IsActive = false;
                await _scheduleDetailRepository.UpdateAsync(scheduleDetail);

                await _activeScheduleRepository.UpdateAsync(activeSchedule);

                return(RedirectToAction("ShowScheduleForDealership", "ScheduleDetails"));
            }
            catch (Exception ex)
            {
                ModelState.AddModelError(string.Empty, ex.InnerException.Message);
                var scheduleDetailsEx = await _scheduleDetailRepository.GetScheduleDetailAsync(model.Schedule.Id);

                var departmentsEx = _dealershipDepartmentRepository.GetDealershipDepartments(scheduleDetailsEx.Dealership.Id);
                var returnModelEx = _converterHelper.ToStartRepairViewModel(scheduleDetailsEx, departmentsEx);

                return(View(returnModelEx));
            }
        }