Beispiel #1
0
        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));
            }
        }
Beispiel #2
0
        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));
            }
        }
Beispiel #3
0
        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));
            }
        }