// GET: Respuesta_Empleado/Create public ActionResult CreateFromQueja(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } Queja queja = db.Quejas.Find(id); if (queja == null) { return(HttpNotFound()); } RespuestaClienteQuejaViewModel viewmodel = new RespuestaClienteQuejaViewModel() { QuejaViewModel = new QuejaViewModel { Queja = queja, Respuestas = new List <Respuesta>() }, Respuesta_Cliente = new Respuesta_Cliente { Queja_QuejaID = queja.QRID, Estado_QR_Estado_OrigenID = queja.Estado_QR_EstadoID } }; AddListRespuestasQuejas(queja, viewmodel); Respuesta_Cliente respuesta_Cliente = viewmodel.Respuesta_Cliente; AddViewBagCreate(respuesta_Cliente); return(View(viewmodel)); }
public ActionResult CreateFromQueja(RespuestaClienteQuejaViewModel viewModel) { Respuesta_Cliente respuesta_Cliente = viewModel.Respuesta_Cliente; Queja queja = db.Quejas.Find(viewModel.QuejaViewModel.Queja.QRID); respuesta_Cliente.Queja_QuejaID = queja.QRID; if (ValoracionInvalida(respuesta_Cliente)) { RestartRespuestaClienteQuejaViewModel(viewModel, respuesta_Cliente, queja); ModelState.AddModelError("", "Valoración inválida"); return(View(viewModel)); } if (EstadoInvalido(respuesta_Cliente)) { RestartRespuestaClienteQuejaViewModel(viewModel, respuesta_Cliente, queja); ModelState.AddModelError("", "Estado inválido"); return(View(viewModel)); } if (ModelState.IsValid) { respuesta_Cliente.Fecha = DateTime.Now; queja.Estado_QR_EstadoID = respuesta_Cliente.Estado_QR_Estado_DestinoID; db.Respuesta_Clientes.Add(respuesta_Cliente); db.Entry(queja).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index", "Quejas")); } RestartRespuestaClienteQuejaViewModel(viewModel, respuesta_Cliente, queja); return(View(viewModel)); }
private void RestartRespuestaClienteQuejaViewModel(RespuestaClienteQuejaViewModel viewModel, Respuesta_Cliente respuesta_Cliente, Queja queja) { viewModel.QuejaViewModel.Queja = queja; AddListRespuestasQuejas(queja, viewModel); AddViewBagCreatePost(respuesta_Cliente); }
private void AddListRespuestasQuejas(Queja queja, RespuestaClienteQuejaViewModel viewmodel) { int?id_queja = queja.QRID; List <Respuesta_Empleado> respuesta_Empleados = db.Respuesta_Empleados.Where(e => e.Queja_QuejaID == id_queja).ToList(); List <Respuesta_Cliente> respuesta_Clientes = db.Respuesta_Clientes.Where(e => e.Queja_QuejaID == id_queja).ToList(); if (viewmodel.QuejaViewModel.Respuestas == null) { viewmodel.QuejaViewModel.Respuestas = new List <Respuesta>(); } viewmodel.QuejaViewModel.Respuestas.AddRange(respuesta_Clientes); viewmodel.QuejaViewModel.Respuestas.AddRange(respuesta_Empleados); viewmodel.QuejaViewModel.Respuestas.Sort(ModelHelpers.CompareRespuestas); }