Beispiel #1
0
        public async Task <IHttpActionResult> UsuariosStep(UsuarioFlujoPQRSViewModel model)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    if (await DeleteUserStep(model.UsuariosStepList.FirstOrDefault().MotivoPQRSId, model.UsuariosStepList.FirstOrDefault().FlujoPQRSId))
                    {
                        foreach (var usuario in model.UsuariosStepList)
                        {
                            if (usuario.check)
                            {
                                UsuarioFlujoPQRS usuarioFlujoPQRS = new UsuarioFlujoPQRS();
                                usuarioFlujoPQRS.MotivoPQRSId = usuario.MotivoPQRSId;
                                usuarioFlujoPQRS.FlujoPQRSId  = usuario.FlujoPQRSId;
                                usuarioFlujoPQRS.UsuarioId    = usuario.UsuarioId;
                                db.UsuarioFlujoPQRS.Add(usuarioFlujoPQRS);
                            }
                        }
                        await db.SaveChangesAsync();

                        await ActivaMotivoPQRS(model.UsuariosStepList.FirstOrDefault().MotivoPQRSId);
                    }

                    //db.Entry(model).State = EntityState.Modified;
                    //await db.SaveChangesAsync();
                    AddLog("", model.UsuariosStepList.FirstOrDefault().MotivoPQRSId, model);
                }
                return(Ok(model));
            }
            catch (Exception ex)
            {
                return(InternalServerError(ex));
            }
        }
Beispiel #2
0
        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);
        }