public async Task <IHttpActionResult> CreateStep(FlujoPQRS model) { try { //Obtiene ultima linea int lastid = await db.FlujosPQRS .Where(f => f.MotivoPQRSId == model.MotivoPQRSId) .Select(f => f.Id).MaxAsync() + 1; if (ModelState.IsValid) { model.Id = lastid; model.EnviaCorreoDestinatarios = model.EnviaCorreoDestinatarios ?? false; db.FlujosPQRS.Add(model); await db.SaveChangesAsync(); AddLog("", model.Id, model); //await ActivaMotivoPQRS(model.UsuariosStepList.FirstOrDefault().MotivoPQRSId); await ActivaMotivoPQRS(model.MotivoPQRSId); } return(Ok(model)); } catch (Exception ex) { return(InternalServerError(ex)); } }
public async Task <IHttpActionResult> EditStep(FlujoPQRS model) { try { if (ModelState.IsValid) { model.EnviaCorreoDestinatarios = model.EnviaCorreoDestinatarios ?? false; db.Entry(model).State = EntityState.Modified; await db.SaveChangesAsync(); AddLog("", model.Id, model); } return(Ok(model)); } catch (Exception ex) { return(InternalServerError(ex)); } }
private async Task <bool> CreateFlujoPQRS(int MotivoPQRSId, int MotivoPQRSCopy = 0) { bool result = true; try { if (MotivoPQRSCopy == 0) { var flujo = await db.FlujosPQRS.Where(f => f.MotivoPQRSId == MotivoPQRSId).FirstOrDefaultAsync(); if (flujo == null) { for (int i = 1; i <= 3; i++) { FlujoPQRS nFlujo = new FlujoPQRS(); nFlujo.Id = i; nFlujo.MotivoPQRSId = MotivoPQRSId; nFlujo.Order = i; nFlujo.EnviaCorreoDestinatarios = true; if (i == 1) { nFlujo.TipoPaso = TipoPaso.LlenarFormato; nFlujo.Nombre = "Creación de formato"; } else if (i == 2) { nFlujo.TipoPaso = TipoPaso.General; nFlujo.Nombre = "Asignación de Analista"; } else if (i == 3) { nFlujo.TipoPaso = TipoPaso.General; nFlujo.Nombre = "Cierre o Solución"; } db.FlujosPQRS.Add(nFlujo); }//for (int i = 1; i <= 3; i++) await db.SaveChangesAsync(); var config = Seguridadcll.Configuracion; //Crear usuarios por paso (usuario PQRS Coordinador) var usuPQRSCoordinador = await db.RolUsuario.Include(ru => ru.Usuario) .Where(ru => ru.RolId == (config.ConfigTipoUsuPQRSCoordinador ?? null)) .Select(ru => ru.Usuario) .ToListAsync(); foreach (var uc in usuPQRSCoordinador) { UsuarioFlujoPQRS uf = new UsuarioFlujoPQRS(); uf.FlujoPQRSId = 2; uf.MotivoPQRSId = MotivoPQRSId; uf.UsuarioId = uc.UsuarioId; db.UsuarioFlujoPQRS.Add(uf); } await db.SaveChangesAsync(); //Crear usuarios por paso (usuario PQRS Coordinador) //Crear usuarios por paso (usuario PQRS Analista) var usuPQRSAnalista = await db.RolUsuario.Include(ru => ru.Usuario) .Where(ru => ru.RolId == (config.ConfigTipoUsuPQRSAnalista ?? null)) .Select(ru => ru.Usuario) .ToListAsync(); foreach (var ua in usuPQRSAnalista) { UsuarioFlujoPQRS uf = new UsuarioFlujoPQRS(); uf.FlujoPQRSId = 3; uf.MotivoPQRSId = MotivoPQRSId; uf.UsuarioId = ua.UsuarioId; db.UsuarioFlujoPQRS.Add(uf); } await db.SaveChangesAsync(); //Crear usuarios por paso (usuario PQRS Analista) }//if (flujo == null) } else { var flujoCopy = await db.FlujosPQRS.Where(f => f.MotivoPQRSId == MotivoPQRSCopy).ToListAsync(); foreach (var f in flujoCopy) { FlujoPQRS nFlujo = new FlujoPQRS(); nFlujo.Id = f.Id; nFlujo.MotivoPQRSId = MotivoPQRSId; nFlujo.Order = f.Order; nFlujo.EnviaCorreoDestinatarios = f.EnviaCorreoDestinatarios; nFlujo.TipoPaso = f.TipoPaso; nFlujo.Nombre = f.Nombre; db.FlujosPQRS.Add(nFlujo); var flujoCopyUsuarios = await db.UsuarioFlujoPQRS.Where(u => u.FlujoPQRSId == f.Id && u.MotivoPQRSId == f.MotivoPQRSId).ToListAsync(); foreach (var ua in flujoCopyUsuarios) { UsuarioFlujoPQRS uf = new UsuarioFlujoPQRS(); uf.FlujoPQRSId = nFlujo.Id; uf.MotivoPQRSId = MotivoPQRSId; uf.UsuarioId = ua.UsuarioId; db.UsuarioFlujoPQRS.Add(uf); } await db.SaveChangesAsync(); } } } catch { result = false; } return(result); }