public async Task <ActionResult> Edit(ComplaintsDto Data) { if (!ModelState.IsValid) { return(View(new TaskResult <ComplaintsDto> { Data = Data })); } var model = await _complaintsRepository.UpdateAsync(Data); var options = await _complaintsOptionsRepository.GetAllAsync(); ViewBag.ComplaintsOptions = options.Data.Select(e => new SelectListItem { Value = e.Id.ToString(), Text = e.Name }).ToList(); var products = await _productsRepository.GetAllAsync(); ViewBag.Products = products.Data.Select(e => new SelectListItem { Value = e.Id.ToString(), Text = e.Name }).ToList(); var customers = await _customeRepository.GetAllAsync(); ViewBag.Customers = customers.Data.Select(e => new SelectListItem { Value = e.Id.ToString(), Text = $"{e.Name} {e.LastName} ({e.Email})" }).ToList(); return(View(model)); }
public async Task <TaskResult <ComplaintsDto> > UpdateAsync(ComplaintsDto complaintsDto) { var complaints = AutoMapper.Mapper.Map <Complaints>(complaintsDto); var result = new TaskResult <ComplaintsDto>(); try { _context.Complaints.Add(complaints); _context.Entry(complaints).State = System.Data.Entity.EntityState.Modified; await _context.SaveChangesAsync(); result.Data = complaintsDto; result.Message = "El registro fue actualizado correctamente"; } catch (Exception e) { result.Success = false; result.Message = $"Error al intentar actualizar información de la queja: {e.Message}"; } return(result); }
public async Task <TaskResult <ComplaintsDto> > SaveAsync(ComplaintsDto complaintsDto) { var complaints = AutoMapper.Mapper.Map <Complaints>(complaintsDto); var result = new TaskResult <ComplaintsDto>(); try { _context.Complaints.Add(complaints); await _context.SaveChangesAsync(); result.Message = $"Se agregó la queja #{complaints.Id}"; result.Data = AutoMapper.Mapper.Map <ComplaintsDto>(complaints); } catch (Exception e) { result.Success = false; result.Message = $"Error al intentar agregar la queja: {e.Message}"; } return(result); }
public async Task <ActionResult> Create(ComplaintsDto Data) { var department = await _complaintsOptionsRepository.GetAsync(Data.ComplaintsOptionsId); Data.DepartmentsId = department.Data.DepartmentsId.GetValueOrDefault(); var options = await _complaintsOptionsRepository.GetAllAsync(); ViewBag.ComplaintsOptions = options.Data.Select(e => new SelectListItem { Value = e.Id.ToString(), Text = e.Name }).ToList(); var products = await _productsRepository.GetAllAsync(); ViewBag.Products = products.Data.Select(e => new SelectListItem { Value = e.Id.ToString(), Text = e.Name }).ToList(); var customers = await _customeRepository.GetAllAsync(); ViewBag.Customers = customers.Data.Select(e => new SelectListItem { Value = e.Id.ToString(), Text = $"{e.Name} {e.LastName} ({e.Email})" }).ToList(); var ticketTypes = await _ticketTypesRepository.GetAllAsync(); ViewBag.TicketTypes = ticketTypes.Data.Select(e => new SelectListItem { Value = e.Id.ToString(), Text = e.Description }).ToList(); var status1 = await _statusRepository.GetByNameAsync(StatusName.COMMITED); Data.StatusId = status1.Data.Id; var result = await _complaintsRepository.SaveAsync(Data); if (result.Success) { var ticketType = await _ticketTypesRepository.GetAsync(Data.TicketTypesId); var binnacle1 = new BinnacleDto { ApplicationUserId = User.Identity.GetUserId(), StatusId = Data.StatusId, Comment = $"La {ticketType.Data.Description} se ha creado con el estado: {StatusName.COMMITED}", ComplaintsId = result.Data.Id }; await _binnaclesRepository.SaveAsync(binnacle1); var deparment = await _departmentsRepository.GetAsync(Data.DepartmentsId); if (deparment.Success && deparment.Data != null) { var status2 = await _statusRepository.GetByNameAsync(StatusName.TRANSFERRED); await _complaintsRepository.UpdateStatusAsync(status2.Data.Id, result.Data.Id); var binnacle2 = new BinnacleDto { ApplicationUserId = User.Identity.GetUserId(), StatusId = status2.Data.Id, Comment = $"La {ticketType.Data.Description} ha sido transferido al departamento: {deparment.Data.Name}", ComplaintsId = result.Data.Id }; await _binnaclesRepository.SaveAsync(binnacle2); } } return(View(result)); }