public List <Usuarios> CallStoredProcedure(Usuarios usuario)
        {
            List <Usuarios> usuarios = new List <Usuarios>();

            using (SqlCommand command = new SqlCommand("usp_ValidarUsuario", SQLConfiguration.GetConnection()))
            {
                command.Parameters.Add("@userName", SqlDbType.VarChar, 50).Value = usuario.NombreUsuario;
                command.Parameters.Add("@password", SqlDbType.VarChar, 50).Value = usuario.Password;
                command.CommandType = CommandType.StoredProcedure;
                SQLConfiguration.Open();
                SqlDataReader reader = command.ExecuteReader();
                bool          isOk   = false;
                while (reader.Read())
                {
                    isOk = bool.Parse(reader["isOk"].ToString());
                }
                if (isOk == false)
                {
                    SQLConfiguration.Close();

                    return(null);
                }

                reader.Close();
            }

            usuarios.Add(Find(usuario));
            SQLConfiguration.Close();
            return(usuarios);
        }
        public bool InsertarRequerimiento(Requerimientos requerimiento)
        {
            CommandSender cmd = new CommandSender.Builder()
                                .SetProcedureName("usp_InsertarRequerimiento")
                                .WithParameter <string>("idRequerimiento", requerimiento.idRequerimiento)
                                .WithParameter <string>("nombreRequerimiento", requerimiento.NombreRequerimiento)
                                .WithParameter <string>("rutaRequerimiento", requerimiento.RutaRequerimiento)
                                .WithParameter <int>("idArea", requerimiento.idArea)
                                .WithParameter <string>("prioridad", requerimiento.Prioridad)
                                .WithParameter <int?>("idUsuario", requerimiento.idUsuario)
                                .Build();

            bool queryIsOk = cmd.Excecute() == 1 ? true : false;

            if (queryIsOk)
            {
                foreach (var permiso in requerimiento.PermisosPorProyecto)
                {
                    new CommandSender.Builder()
                    .SetProcedureName("GuardarPermisosPorRequerimiento")
                    .WithParameter <string>("idRequerimiento", requerimiento.idRequerimiento)
                    .WithParameter <int>("idPermisoPU", permiso.idPermisoPU)
                    .WithParameter <bool>("estado", permiso.EstadoPermiso)
                    .Build()
                    .Excecute();
                }
                SQLConfiguration.Close();
                return(true);
            }
            SQLConfiguration.Close();
            return(false);
        }
        public DataTable ExecuteStoredProcedure(int id)
        {
            CommandSender cmdSender = new CommandSender.Builder()
                                      .SetProcedureName("usp_ObtenerProyectosEnEquipoDeProgramador")
                                      .WithParameter <int>("idUsuario", id)
                                      .Build();

            SQLConfiguration.Close();
            return(_converter.GetDataByStoredProcedure(cmdSender));
        }
        public Usuarios Find(Usuarios usuario)
        {
            CommandSender cmdsender = new CommandSender.Builder()
                                      .SetProcedureName("usp_ObtenerUsuarios")
                                      .Build();
            List <Usuarios> usuarios = _converter.GetAnyDataByCommand <Usuarios>(cmdsender);

            SQLConfiguration.Close();

            return(usuarios.FirstOrDefault(u => u.NombreUsuario == usuario.NombreUsuario));
        }
        public List <TipoRequerimiento> ObtenerTiposRequerimientos()
        {
            List <TipoRequerimiento> tipoRequerimientos = new List <TipoRequerimiento>();

            CommandSender cmd = new CommandSender.Builder()
                                .SetProcedureName("usp_ObtenerTipoRequerimiento")
                                .Build();

            tipoRequerimientos = _storedProceduresService.GetAnyDataByCommand <TipoRequerimiento>(cmd);
            SQLConfiguration.Close();
            return(tipoRequerimientos);
        }
        public List <Usuarios> ObtenerProgramadoresConId()
        {
            List <Usuarios> usuariosConId = new List <Usuarios>();

            CommandSender cmd = new CommandSender.Builder()
                                .SetProcedureName("usp_ObtenerUsuarios")
                                .Build();

            usuariosConId = _storedProceduresService.GetAnyDataByCommand <Usuarios>(cmd);
            SQLConfiguration.Close();
            return(usuariosConId);
        }
        public List <EstadosDeRequerimiento> ObtenerEstadoRequerimiento()
        {
            List <EstadosDeRequerimiento> estados = new List <EstadosDeRequerimiento>();

            CommandSender cmd = new CommandSender.Builder()
                                .SetProcedureName("usp_ObtenerEstadosDeRequerimiento")
                                .Build();

            estados = _storedProceduresService.GetAnyDataByCommand <EstadosDeRequerimiento>(cmd);
            SQLConfiguration.Close();
            return(estados);
        }
        public Usuarios ObtenerEntidadPorId(int idUsuario)
        {
            CommandSender cmdsender = new CommandSender.Builder()
                                      .SetProcedureName("usp_ObtenerCredencialUsuario")
                                      .WithParameter <int>("idUsuario", idUsuario)
                                      .Build();

            List <Usuarios> us = _converter.GetAnyDataByCommand <Usuarios>(cmdsender);

            SQLConfiguration.Close();
            return(us.LastOrDefault(u => u.idUsuario == idUsuario));
        }
        public List <PermisosDePU> ObtenerPermisosDePU()
        {
            List <PermisosDePU> permisosDePU = new List <PermisosDePU>();

            CommandSender cmd = new CommandSender.Builder()
                                .SetProcedureName("usp_ObtenerPermisosDeIPS")
                                .Build();

            permisosDePU = _storedProceduresService.GetAnyDataByCommand <PermisosDePU>(cmd);
            SQLConfiguration.Close();
            return(permisosDePU);
        }
        public List <ProyectosPorProgramador> ObtenerProyectosPorIdProgramador(int id)
        {
            List <ProyectosPorProgramador> proyectos = new List <ProyectosPorProgramador>();

            CommandSender cmd = new CommandSender.Builder()
                                .SetProcedureName("usp_ObtenerProyectosPorIdProgramador")
                                .WithParameter <int>("idUsuario", id)
                                .Build();

            proyectos = _storedProceduresService.GetAnyDataByCommand <ProyectosPorProgramador>(cmd);
            SQLConfiguration.Close();
            return(proyectos);
        }
        public IEnumerable <Requerimiento> ObtenerRequerimientoPorTipoAsignacion(string tipoProyecto)
        {
            List <Requerimiento> requerimientos = new List <Requerimiento>();

            CommandSender cmd = new CommandSender.Builder()
                                .SetProcedureName("usp_ObtenerRequerimientosPorAsignacion")
                                .WithParameter <string>("", tipoProyecto)
                                .Build();

            requerimientos = _storedProceduresService.GetAnyDataByCommand <Requerimiento>(cmd);
            SQLConfiguration.Close();
            return(requerimientos);
        }
        public String ObtenerUltimoIdDeRequerimiento()
        {
            string        idRequerimiento;
            CommandSender cmd = new CommandSender.Builder()
                                .SetProcedureName("usp_ObtenerUltimoIdDeRequerimiento")
                                .Build();

            idRequerimiento = _storedProceduresService.GetAnyDataByCommand <Requerimientos>(cmd)
                              .FirstOrDefault().idRequerimiento;

            SQLConfiguration.Close();
            return(idRequerimiento);
        }
        public bool InsertarIncidencia(IncidenciasProduccion incidencia)
        {
            bool queryIsOk = new CommandSender.Builder()
                             .SetProcedureName("usp_InsertarIncidencia")
                             .WithParameter <string>("idIncidenciaProduccion", incidencia.idIncidenciaProduccion)
                             .WithParameter <string>("nombreIncidencia", incidencia.NombreIncidencia)
                             .WithParameter <string>("DescripcionIncidencia", incidencia.DescripcionIncidencia)
                             .WithParameter <int>("idUsuario", incidencia.idUsuario)
                             .Build()
                             .Excecute() == 1 ? true : false;

            SQLConfiguration.Close();
            return(queryIsOk);
        }
        public List <Requerimientos> GetAll()
        {
            _storedProceduresService = new SqlStoredProcedureServiceManager();
            List <Requerimientos> requerimientos = new List <Requerimientos>();

            CommandSender cmd = new CommandSender.Builder()
                                .SetProcedureName("ObtenerRequrimientos")
                                .Build();

            requerimientos = _storedProceduresService.GetAnyDataByCommand <Requerimientos>(cmd);

            SQLConfiguration.Close();
            return(requerimientos);
        }
        public List <Areas> ObtenerAreas()
        {
            List <Areas> areas = new List <Areas>();

            CommandSender cmd = new CommandSender.Builder()
                                .SetProcedureName("usp_ObtenerAreas")
                                .Build();

            areas = _storedProceduresService.GetAnyDataByCommand <Areas>(cmd);

            SQLConfiguration.Close();

            return(areas);
        }
        public List <PermisosDePU> ObtenerPermisosPuRequeridos(string idRequerimiento)
        {
            List <PermisosDePU> proyectos = new List <PermisosDePU>();

            CommandSender cmd = new CommandSender.Builder()
                                .SetProcedureName("usp_ObtenerPermisosPuRequeridos")
                                .WithParameter <string>("idRequerimiento", idRequerimiento)
                                .Build();

            proyectos = _storedProceduresService.GetAnyDataByCommand <PermisosDePU>(cmd);
            SQLConfiguration.Close();

            return(proyectos);
        }
        public bool InsertarEquiposDeTrabajo(int idLider, List <Usuarios> programadoresDelEquipo)
        {
            bool isQueryOk = false;

            programadoresDelEquipo.ForEach(p => {
                isQueryOk = new CommandSender.Builder()
                            .SetProcedureName("usp_InsertarEquiposDeTrabajo")
                            .WithParameter <int>("idLiderProyecto", idLider)
                            .WithParameter <int>("idUsuario", p.idUsuario)
                            .Build()
                            .Excecute() == 1 ? true : false;
            });

            SQLConfiguration.Close();
            return(isQueryOk);
        }