public async Task <IActionResult> ManageUserSteps(int id, PasosUsuariosDetalle step) { if (ModelState.IsValid) { var stepInDb = await _context.PasosUsuariosDetalle .Include(p => p.PlantillaPasoDetalleNavigation) .ThenInclude(p => p.PasoNavigation) .ThenInclude(p => p.PasosInstanciasDatosDetalle) .ThenInclude(p => p.InstanciaPlantillaDatoNavigation) .ThenInclude(p => p.IdDatoTipoNavigation) .Where(p => p.IdPasosUsuarios == id) .FirstOrDefaultAsync(); stepInDb.PlantillaPasoDetalleNavigation.Estado = step.PlantillaPasoDetalleNavigation.Estado; if (step.PlantillaPasoDetalleNavigation.Estado == 3) { stepInDb.PlantillaPasoDetalleNavigation.PasoNavigation.FechaFin = DateTime.Now; } foreach (var i in step.PlantillaPasoDetalleNavigation.PasoNavigation.PasosInstanciasDatosDetalle) { foreach (var j in stepInDb.PlantillaPasoDetalleNavigation.PasoNavigation.PasosInstanciasDatosDetalle) { if (i.IdPasosInstanciasDatos == j.IdPasosInstanciasDatos) { j.InstanciaPlantillaDatoNavigation.DatoTexto = i.InstanciaPlantillaDatoNavigation.DatoTexto; j.InstanciaPlantillaDatoNavigation.DatoFecha = i.InstanciaPlantillaDatoNavigation.DatoFecha; j.InstanciaPlantillaDatoNavigation.DatoNumerico = i.InstanciaPlantillaDatoNavigation.DatoNumerico; j.InstanciaPlantillaDatoNavigation.DatoDecimal = i.InstanciaPlantillaDatoNavigation.DatoDecimal; } } } _context.PasosUsuariosDetalle.Update(stepInDb); await _context.SaveChangesAsync(); TempData["Success"] = "Actualizacion de paso exitoso."; return(RedirectToAction(nameof(Steps))); } else { ViewData["Status"] = new SelectList(_context.Acciones, "IdAccion", "Nombre"); return(View(step)); } }
public async Task <IActionResult> RedirectUserSteps(int id, PasosUsuariosDetalle step) { if (ModelState.IsValid) { var stepInDb = await _context.PasosUsuariosDetalle .Where(p => p.IdPasosUsuarios == id) .FirstOrDefaultAsync(); stepInDb.AspNetUser = step.AspNetUser; await _context.SaveChangesAsync(); TempData["Success"] = "Paso redireccionado exitosamente."; return(RedirectToAction(nameof(Steps))); } else { ViewData["Status"] = new SelectList(_context.Acciones, "IdAccion", "Nombre"); var currentUser = User.FindFirstValue(ClaimTypes.Name); ViewData["Users"] = new SelectList(_userManager.Users.Where(u => u.UserName != currentUser), "Id", "UserName"); return(View(step)); } }
public async Task <IActionResult> DenyUserSteps(int id, PasosUsuariosDetalle step) { if (ModelState.IsValid) { var stepInDb = await _context.PasosUsuariosDetalle .Include(p => p.PlantillaPasoDetalleNavigation) .ThenInclude(p => p.PasoNavigation) .ThenInclude(p => p.PasosInstanciasDatosDetalle) .ThenInclude(p => p.InstanciaPlantillaDatoNavigation) .ThenInclude(p => p.IdDatoTipoNavigation) .Include(p => p.PlantillaPasoDetalleNavigation) .ThenInclude(p => p.InstanciaPlantillaNavigation) .ThenInclude(p => p.InstanciasPlantillasPasosDetalle) .ThenInclude(p => p.PasoNavigation) .Where(p => p.IdPasosUsuarios == id) .FirstOrDefaultAsync(); stepInDb.PlantillaPasoDetalleNavigation.Estado = 4; stepInDb.PlantillaPasoDetalleNavigation.InstanciaPlantillaNavigation.Estado = "Rechazada"; stepInDb.PlantillaPasoDetalleNavigation.PasoNavigation.FechaFin = DateTime.Now; foreach (var item in stepInDb .PlantillaPasoDetalleNavigation .InstanciaPlantillaNavigation .InstanciasPlantillasPasosDetalle.Where(p => p.IdPlantillaPasoDetalle >= stepInDb.PlantillaPasoDetalleNavigation.IdPlantillaPasoDetalle)) { item.Estado = 4; } _context.PasosUsuariosDetalle.Update(stepInDb); await _context.SaveChangesAsync(); TempData["Success"] = "Paso rechazado exitosamente."; return(RedirectToAction(nameof(Steps))); } else { return(View(step)); } }