Пример #1
0
        public IHttpActionResult Delete(int id)
        {
            SQLConexion         _conexion   = new SQLConexion();
            List <SqlParameter> _Parametros = new List <SqlParameter>();
            DataTableReader     _dtr        = null;

            try
            {
                _conexion.Conectar(System.Configuration.ConfigurationManager.ConnectionStrings["MiBD"].ToString());
                _Parametros.Add(new SqlParameter("@id", id));
                _conexion.PrepararProcedimiento("sp_DeleteDet", _Parametros);
                _dtr = _conexion.EjecutarTableReader();
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }
            finally
            {
                _conexion.Desconectar();
                _conexion = null;
                _dtr      = null;
            }
            return(Ok());
        }
        public bool CrearEvaluacion(List <Pregunta> preguntas, int idCurso)
        {
            SQLConexion         conn       = new SQLConexion();
            List <SqlParameter> parametros = new List <SqlParameter>();

            try
            {
                conn.Conectar(cadenaConexion);
                for (int i = 0; i < preguntas.Count; i++)
                {
                    List <SqlParameter> parametrosPreguntas = new List <SqlParameter>();
                    parametrosPreguntas.Add(new SqlParameter("@idCurso", idCurso));
                    parametrosPreguntas.Add(new SqlParameter("@pregunta", preguntas[i].PreguntaNombre));
                    parametrosPreguntas.Add(new SqlParameter("@respuestacorr", preguntas[i].RespuestaCorrecta));
                    parametrosPreguntas.Add(new SqlParameter("@respuestaincorr1", preguntas[i].RespuestaIncorrecta1));
                    parametrosPreguntas.Add(new SqlParameter("@respuestaincorr2", preguntas[i].RespuestaIncorrecta2));
                    conn.PrepararProcedimiento("sp_crearPregunta", parametrosPreguntas);
                    conn.EjecutarProcedimiento();
                }

                return(true);
            }
            catch (Exception Ex)
            {
                return(false);

                throw Ex;
            }
            finally
            {
                conn.Desconectar();
            }
        }
    public void Updates(string user)
    {
        SQLConexion         _conexion   = new SQLConexion();
        List <SqlParameter> _Parametros = new List <SqlParameter>();
        DataTableReader     _dtr        = null;
        List <User>         _list       = new List <User>();

        try
        {
            //se abre conexion
            _conexion.Conectar(System.Configuration.ConfigurationManager.ConnectionStrings["MiBD"].ToString());
            _Parametros.Add(new SqlParameter("@id", user.ToString()));
            _conexion.PrepararProcedimiento("sp_UdtEst", _Parametros);
            _dtr = _conexion.EjecutarTableReader();
        }
        catch (Exception ex)
        {
            throw new Exception(ex.Message);
        }
        finally
        {
            _conexion.Desconectar();
            _conexion = null;
            _dtr      = null;
        }
    }
Пример #4
0
        /// <summary>
        /// Esta funcion Actualiza el usuario.
        /// </summary>
        /// <param name="usuario">Recibe un objeto de tipo usuario con todos sus atributos <see cref="Usuario"/></param>
        /// <returns></returns>
        public bool ActualizarUsuario(Usuario usuario)
        {
            SQLConexion         conn       = new SQLConexion();
            List <SqlParameter> parametros = new List <SqlParameter>();

            try
            {
                conn.Conectar(cadenaConexion);
                parametros.Add(new SqlParameter("@id", usuario.IdUsuario));
                parametros.Add(new SqlParameter("@idGrupo", usuario.IdGrupo));
                parametros.Add(new SqlParameter("@nombre", usuario.Nombre));
                parametros.Add(new SqlParameter("@apellido", usuario.Apellido));
                parametros.Add(new SqlParameter("@correo", usuario.Correo));
                parametros.Add(new SqlParameter("@con", usuario.Contrasenia));


                conn.PrepararProcedimiento("sp_actualizarUsuario", parametros);
                conn.EjecutarProcedimiento();

                return(true);
            }
            catch (Exception Ex)
            {
                return(false);

                throw Ex;
            }
            finally
            {
                conn.Desconectar();
            }
        }
Пример #5
0
        /// <summary>
        /// La funcion actualiza el curso
        /// </summary>
        /// <param name="curso">Recibe un parametro de tipo Curso. Es importante incluir todos los atributos de Curso <see cref="Curso"/> para actualizar exitosamente</param>
        /// <returns>Retorna un valor booleano. True para exito en la creacion. False para fallo en la creacion</returns>
        /// <example>
        /// <code>
        /// Curso curso = new Curso
        ///   {
        ///        IdCurso = 1,
        ///        Nombre = "Atencion a clientes 2",
        ///        UrlDescarga = curso.UploadCourse(),
        ///        Vigencia = new DateTime(2019, 06, 20 , 10, 39, 30)
        ///    };
        /// ActualizarCurso(curso);
        /// </code>
        /// </example>
        public bool ActualizarCurso(Curso curso)
        {
            SQLConexion         conn       = new SQLConexion();
            List <SqlParameter> parametros = new List <SqlParameter>();

            try
            {
                conn.Conectar(cadenaConexion);
                parametros.Add(new SqlParameter("@idcurso", curso.IdCurso));
                parametros.Add(new SqlParameter("@nombre", curso.Nombre));
                parametros.Add(new SqlParameter("@urlDescarga", curso.UrlDescarga));
                parametros.Add(new SqlParameter("@vigencia", curso.Vigencia));

                conn.PrepararProcedimiento("sp_ModificarCurso", parametros);
                conn.EjecutarProcedimiento();

                return(true);
            }
            catch (Exception Ex)
            {
                return(false);

                throw Ex;
            }
            finally
            {
                conn.Desconectar();
            }
        }
        public IHttpActionResult Authenticate(Usuarios usuario)
        {
            if (usuario == null)
            {
                throw new HttpResponseException(HttpStatusCode.BadRequest);
            }

            SQLConexion         _conexion   = new SQLConexion();
            List <SqlParameter> _Parametros = new List <SqlParameter>();
            DataTableReader     _dtr        = null;
            List <Usuarios>     _list       = new List <Usuarios>();

            try
            {
                _conexion.Conectar(System.Configuration.ConfigurationManager.ConnectionStrings["MiBD"].ToString());
                _Parametros.Add(new SqlParameter("@nick", usuario.Nick));
                _Parametros.Add(new SqlParameter("@pass", usuario.Password));
                _conexion.PrepararProcedimiento("sp_auth", _Parametros);
                _dtr = _conexion.EjecutarTableReader();
                if (_dtr.HasRows && _dtr.Read())
                {
                    var token = TokenGenerator.GenerateTokenJwt(usuario.Password);
                    return(Ok(token));
                }
                else
                {
                    return(Unauthorized());
                }
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }
            //TODO: Validate credentials Correctly, this code is only for demo !!
        }
Пример #7
0
        /// <summary>
        /// Funcion para crear nuevo grupo de trabajo
        /// </summary>
        /// <param name="grupoNombre">Se proporciona el nombre que trendra el grupo de trabajo</param>
        /// <returns>Retorna un valor de tipo booleano. True para exito en la creacion y False para fallo</returns>
        public bool InsertarGrupo(string grupoNombre)
        {
            //ESTOS PARAMENTROS SON PARA ENVIAR UNA NOTIFICACION DE ESCRITORIO
            string title         = "Company Academy";
            string contentString = "El grupo de trabajo " + grupoNombre + " ha sido creado con exito";
            //string image = "Resources/checkmark.png";

            SQLConexion         conn       = new SQLConexion();
            List <SqlParameter> parametros = new List <SqlParameter>();

            try
            {
                conn.Conectar(cadenaConexion);
                parametros.Add(new SqlParameter("@nombre", grupoNombre));

                conn.PrepararProcedimiento("sp_insertarGrupo", parametros);
                conn.EjecutarProcedimiento();
                //ToastNotificationManager.CreateToastNotifier().Show(notification); //SE MUESTRA LA NOTIFICACION PREVIAMENTE CREADA

                return(true);
            }
            catch (Exception Ex)
            {
                return(false);

                throw Ex;
            }
            finally
            {
                conn.Desconectar();
            }
        }
    public User Registrar(User user)
    {
        SQLConexion         _conexion   = new SQLConexion();
        List <SqlParameter> _Parametros = new List <SqlParameter>();
        DataTableReader     _dtr        = null;

        try
        {
            _conexion.Conectar(System.Configuration.ConfigurationManager.ConnectionStrings["MiBD"].ToString());
            _Parametros.Add(new SqlParameter("@Name", user.Name));
            _Parametros.Add(new SqlParameter("@LastName", value: user.LastName));
            _Parametros.Add(new SqlParameter("@Nick", user.Nick));
            _Parametros.Add(new SqlParameter("@Password", user.Password));
            _conexion.PrepararProcedimiento("sp_SetUsers", _Parametros);
            _conexion.EjecutarProcedimiento();
            return(user);
        }
        catch (Exception msg)
        {
            throw new Exception(msg.Message);
        }
        finally
        {
            _conexion.Desconectar();
            _conexion = null;
            _dtr      = null;
        }
    }
Пример #9
0
        public IHttpActionResult PutCell(CellPhones cell)
        {
            SQLConexion         _conexion   = new SQLConexion();
            List <SqlParameter> _Parametros = new List <SqlParameter>();
            DataTableReader     _dtr        = null;
            List <CellPhones>   _list       = new List <CellPhones>();

            try
            {
                _conexion.Conectar(System.Configuration.ConfigurationManager.ConnectionStrings["MiBD"].ToString());
                _Parametros.Add(new SqlParameter("@id", cell.Id));
                _Parametros.Add(new SqlParameter("@namephone", cell.Name));
                _Parametros.Add(new SqlParameter("@price", cell.Price));
                _Parametros.Add(new SqlParameter("@firmware", cell.Firmware));
                _Parametros.Add(new SqlParameter("@brand", cell.Brand));
                _conexion.PrepararProcedimiento("sp_UpdateCellPhone", _Parametros);
                _dtr = _conexion.EjecutarTableReader();
                _dtr.Close();
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }
            finally
            {
                _conexion.Desconectar();
                _conexion = null;
                _dtr      = null;
            }
            return(Ok(_list));
        }
Пример #10
0
        public bool ActualizarUsuarioCambioGrupo(Usuario usuario)
        {
            SQLConexion         conn       = new SQLConexion();
            List <SqlParameter> parametros = new List <SqlParameter>();

            try
            {
                conn.Conectar(cadenaConexion);
                parametros.Add(new SqlParameter("@id", usuario.IdUsuario));
                parametros.Add(new SqlParameter("@idGrupo", usuario.IdGrupo));
                parametros.Add(new SqlParameter("@nombre", usuario.Nombre));
                parametros.Add(new SqlParameter("@apellido", usuario.Apellido));
                parametros.Add(new SqlParameter("@correo", usuario.Correo));
                parametros.Add(new SqlParameter("@con", usuario.Contrasenia));


                conn.PrepararProcedimiento("sp_actualizarUsuario", parametros);
                conn.EjecutarProcedimiento();

                string        query1         = "DELETE FROM CursoEmpleado WHERE IdUsuario = " + usuario.IdUsuario + ";";
                SqlConnection conexionQuery1 = new SqlConnection(cadenaConexion);
                conexionQuery1.Open();
                SqlCommand cmd1 = new SqlCommand(query1, conexionQuery1);
                cmd1.ExecuteNonQuery();

                string        query2         = "SELECT IdCurso FROM Curso WHERE IdGrupo = " + usuario.IdGrupo + ";";
                SqlConnection conexionQuery2 = new SqlConnection(cadenaConexion);
                conexionQuery2.Open();
                SqlCommand    cmd2     = new SqlCommand(query2, conexionQuery2);
                SqlDataReader reader   = cmd2.ExecuteReader();
                List <int>    idCursos = new List <int>();
                while (reader.Read())
                {
                    idCursos.Add((int)reader["IdCurso"]);
                }

                for (int i = 0; i < idCursos.Count; i++)
                {
                    List <SqlParameter> parametrosCursoEmpleado = new List <SqlParameter>();
                    parametrosCursoEmpleado.Add(new SqlParameter("@idUsuario", usuario.IdUsuario));
                    parametrosCursoEmpleado.Add(new SqlParameter("@idCurso", idCursos[i]));
                    conn.PrepararProcedimiento("sp_InsertarCursoEmpleado", parametrosCursoEmpleado);
                    conn.EjecutarProcedimiento();
                }

                return(true);
            }
            catch (Exception Ex)
            {
                return(false);

                throw Ex;
            }
            finally
            {
                conn.Desconectar();
            }
        }
    public User Login(User user)
    {//oahdpiubpiufpqiuwebcpiuqwbcpiasdbcpuy
        SQLConexion         _conexion   = new SQLConexion();
        List <SqlParameter> _Parametros = new List <SqlParameter>();
        DataTableReader     _dtr        = null;

        try
        {
            _conexion.Conectar(System.Configuration.ConfigurationManager.ConnectionStrings["MiBD"].ToString());
            _Parametros.Add(new SqlParameter("@nick", user.Nick));
            _Parametros.Add(new SqlParameter("@pass", user.Password));
            _conexion.PrepararProcedimiento("[dbo].[sp_conf]", _Parametros);
            _dtr = _conexion.EjecutarTableReader();

            if (_dtr.HasRows)
            {
                _dtr.Read();
                User _user = new global::User()
                {
                    Id       = long.Parse(_dtr["Id"].ToString()),
                    Name     = _dtr["Nombre"].ToString(),
                    LastName = _dtr["LastName"].ToString(),
                    Nick     = user.Nick,
                    Password = user.Password
                };
                _dtr.Close();
                HttpContext.Current.Session["Identificador"] = _user.Id;
                return(_user);
            }
            else
            {
                throw new Exception("User not found");
            }
        }
        catch (Exception msg)
        {
            throw new Exception(msg.Message);
        }
        finally
        {
            _conexion.Desconectar();
            _conexion = null;
            _dtr      = null;
        }
        //Aqui iría la logica a base de datos
        //if (user.Nick == "andreiarias53" && user.Password == "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855")
        //{

        //Creamos session con el Id del Usuario

        //}
        //else
    }
    public List <User> GetUsers(string user)
    {
        SQLConexion         _conexion   = new SQLConexion();
        List <SqlParameter> _Parametros = new List <SqlParameter>();
        DataTableReader     _dtr        = null;
        List <User>         _list       = new List <User>();

        try
        {
            //se abre conexion
            _conexion.Conectar(System.Configuration.ConfigurationManager.ConnectionStrings["MiBD"].ToString());
            _Parametros.Add(new SqlParameter("@nick", user.ToString()));
            _conexion.PrepararProcedimiento("sp_ListUsers", _Parametros);
            _dtr = _conexion.EjecutarTableReader();
            if (_dtr.HasRows)
            {
                while (_dtr.Read())
                {
                    User _user = new User()
                    {
                        //Se recuperan los valores de acuerdo al alias que se definio en el procedimiento almacenado
                        Id       = long.Parse(_dtr["Id"].ToString()),
                        Name     = _dtr["Nombre"].ToString(),
                        LastName = _dtr["LastName"].ToString(),
                        Nick     = _dtr["Nick"].ToString(),
                        Password = _dtr["Password"].ToString(),
                        Img      = _dtr["Img"].ToString()
                    };
                    _list.Add(_user); //Se agrega elemento 2

                    //HttpContext.Current.Session["Identificador"] = _user.Id;
                }
                //JavaScriptSerializer js = new JavaScriptSerializer();
                //Context.Response.Write(js.Serialize(_list));
                _dtr.Close();
                return(_list);
            }
        }
        catch (Exception ex)
        {
            throw new Exception(ex.Message);
        }
        finally
        {
            _conexion.Desconectar();
            _conexion = null;
            _dtr      = null;
        }
        return(_list);
    }
Пример #13
0
        public IHttpActionResult GetId(string fecha)
        {
            SQLConexion         _conexion         = new SQLConexion();
            List <SqlParameter> _Parametros       = new List <SqlParameter>();
            DataTableReader     _dtr              = null;
            List <DetalleVenta> _list             = new List <DetalleVenta>();
            List <ProductoDetalleVentaModel> _dtv = new List <ProductoDetalleVentaModel>();
            DetalleVenta detalleVenta             = new DetalleVenta();

            try
            {
                _conexion.Conectar(System.Configuration.ConfigurationManager.ConnectionStrings["MiBD"].ToString());
                _Parametros.Add(new SqlParameter("@fecha", fecha));
                _conexion.PrepararProcedimiento("sp_GetByDateTime2", _Parametros);
                _dtr = _conexion.EjecutarTableReader();
                if (_dtr.HasRows)
                {
                    while (_dtr.Read())
                    {
                        //Se recuperan los valores de acuerdo al alias que se definio en el procedimiento almacenado
                        detalleVenta.IdVenta    = Int32.Parse(_dtr["IdVenta"].ToString());
                        detalleVenta.TotalVenta = Double.Parse(_dtr["TotalCompra"].ToString());
                        ProductoDetalleVentaModel _producto = new ProductoDetalleVentaModel()
                        {
                            IdProducto = Int32.Parse(_dtr["IdProducto"].ToString()),
                            Nombre     = _dtr["Nombre"].ToString(),
                            Cantidad   = Int32.Parse(_dtr["Cantidad"].ToString()),
                            Precio     = Double.Parse(_dtr["PrecioUnitario"].ToString())
                        };
                        _dtv.Add(_producto);
                        detalleVenta.Productos = _dtv;
                    }

                    _dtr.Close();
                    _list.Add(detalleVenta);
                    return(Ok(_list));
                }
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }
            finally
            {
                _conexion.Desconectar();
                _conexion = null;
                _dtr      = null;
            }
            return(Ok(_list));
        }
Пример #14
0
        public IHttpActionResult GetId(int id)
        {
            SQLConexion         _conexion   = new SQLConexion();
            List <SqlParameter> _Parametros = new List <SqlParameter>();
            DataTableReader     _dtr        = null;
            List <CellPhones>   _list       = new List <CellPhones>();

            try
            {
                _conexion.Conectar(System.Configuration.ConfigurationManager.ConnectionStrings["MiBD"].ToString());
                _Parametros.Add(new SqlParameter("@id", id));
                _conexion.PrepararProcedimiento("sp_GetById", _Parametros);
                _dtr = _conexion.EjecutarTableReader();
                if (_dtr.HasRows)
                {
                    while (_dtr.Read())
                    {
                        CellPhones _cellPhones = new CellPhones()
                        {
                            //Se recuperan los valores de acuerdo al alias que se definio en el procedimiento almacenado
                            Id       = Int32.Parse(_dtr["IdCellPhone"].ToString()),
                            Name     = _dtr["NamePhone"].ToString(),
                            Firmware = _dtr["Firmware"].ToString(),
                            Price    = Double.Parse(_dtr["Price"].ToString()),
                            Brand    = _dtr["Brand"].ToString()
                        };
                        _list.Add(_cellPhones); //Se agrega elemento 2

                        //HttpContext.Current.Session["Identificador"] = _user.Id;
                    }
                    //JavaScriptSerializer js = new JavaScriptSerializer();
                    //Context.Response.Write(js.Serialize(_list));
                    _dtr.Close();
                    return(Ok(_list));
                }
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }
            finally
            {
                _conexion.Desconectar();
                _conexion = null;
                _dtr      = null;
            }
            return(Ok(_list));
        }
Пример #15
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="correo"> Se recibe el correo del usuario con el cual se quiere iniciar sesion</param>
        /// <param name="pass">Se recibe el password previamente encriptado para que no viaje desprotegida.
        /// Para encriptar password haga uso de la funcion <see cref="EncriptacionSHA256(string)"/></param>
        /// <example>
        /// Ejemplo de logeo con cuenta de administrador
        /// <code>
        /// LoginUsuario("*****@*****.**", EncriptacionSHA256("ADMIN"))
        /// </code>
        /// </example>
        /// <returns>Retorna un valor de tipo entero. 0 para no encontrado, 1 para administrador y 2 para usuario normal</returns>
        public Tuple <int, int, int> LoginUsuario(string correo, string pass)
        {
            SQLConexion         conn       = new SQLConexion();
            List <SqlParameter> parametros = new List <SqlParameter>();
            DataTableReader     reader;

            try
            {
                conn.Conectar(cadenaConexion);
                parametros.Add(new SqlParameter("@correo", correo));
                parametros.Add(new SqlParameter("@contrasenia", pass));

                conn.PrepararProcedimiento("sp_Login", parametros);
                reader = conn.EjecutarTableReader();

                if (reader.HasRows)
                {
                    Usuario usuarioReturn = new Usuario();
                    while (reader.Read())
                    {
                        usuarioReturn.IdUsuario   = (int)reader["IdUsuario"];
                        usuarioReturn.IdGrupo     = (int)reader["IdGrupo"];
                        usuarioReturn.Tipo        = (int)reader["Tipo"];
                        usuarioReturn.Nombre      = (string)reader["Nombre"];
                        usuarioReturn.Apellido    = (string)reader["Apellido"];
                        usuarioReturn.Correo      = (string)reader["Correo"];
                        usuarioReturn.Contrasenia = (string)reader["Contrasenia"];
                    }

                    return(new Tuple <int, int, int>(usuarioReturn.IdUsuario, usuarioReturn.Tipo, usuarioReturn.IdGrupo));//usuarioReturn.Tipo; //EL TIPO 1 ES ADMINISTRADOR Y EL TIPO 2 EL EMPLEADO
                }
                else
                {
                    return(null); //EL CERO SIMBOLIZA UN USUARIO INEXISTENTE
                }
            }
            catch (Exception Ex)
            {
                return(null);

                throw Ex;
            }
            finally
            {
                conn.Desconectar();
            }
        }
Пример #16
0
        public IHttpActionResult GetId(int id)
        {
            SQLConexion          _conexion   = new SQLConexion();
            List <SqlParameter>  _Parametros = new List <SqlParameter>();
            DataTableReader      _dtr        = null;
            List <ProductoModel> _list       = new List <ProductoModel>();

            try
            {
                _conexion.Conectar(System.Configuration.ConfigurationManager.ConnectionStrings["MiBD"].ToString());
                _Parametros.Add(new SqlParameter("@id", id));
                _conexion.PrepararProcedimiento("sp_GetProductById", _Parametros);
                _dtr = _conexion.EjecutarTableReader();
                if (_dtr.HasRows)
                {
                    while (_dtr.Read())
                    {
                        ProductoModel _producto = new ProductoModel()
                        {
                            //Se recuperan los valores de acuerdo al alias que se definio en el procedimiento almacenado
                            IdProducto = Int32.Parse(_dtr["IdProducto"].ToString()),
                            Nombre     = _dtr["Nombre"].ToString(),
                            Precio     = Double.Parse(_dtr["Precio"].ToString())
                        };
                        _list.Add(_producto);
                    }
                    _dtr.Close();
                    return(Ok(_list));
                }
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }
            finally
            {
                _conexion.Desconectar();
                _conexion = null;
                _dtr      = null;
            }
            return(Ok(_list));
        }
Пример #17
0
        public IHttpActionResult post(List <ProductoDetalleVentaModel> Lista)
        {
            List <SqlParameter> _Parametros = new List <SqlParameter>();
            SQLConexion         conn        = new SQLConexion();
            var dt = new DataTable();

            dt.Columns.Add("IdProducto", typeof(Int32));
            dt.Columns.Add("Cantidad", typeof(Int32));
            //DataRow dc = dt.NewRow();
            try
            {
                for (int i = 0; i < Lista.Count; i++)
                {
                    DataRow dc = dt.NewRow();
                    dc[0] = Lista[i].IdProducto;
                    dc[1] = Lista[i].Cantidad;
                    dt.Rows.Add(dc);
                }

                conn.Conectar(System.Configuration.ConfigurationManager.ConnectionStrings["MiBD"].ToString());
                _Parametros.Add(new SqlParameter("@detalle", dt));
                _Parametros[0].SqlDbType = SqlDbType.Structured;
                _Parametros[0].TypeName  = "dbo.Detalle";
                conn.PrepararProcedimiento("sp_Insert", _Parametros);
                conn.EjecutarTableReader();
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }
            finally
            {
                conn.Desconectar();
                conn = null;
            }
            return(Ok());
        }
Пример #18
0
        /// <summary>
        /// La funcion crea un curso nuevo en la base de datos y agrega el curso a los empleados del grupo
        /// </summary>
        /// <param name="curso"> Recibe un parametro de tipo curso con todas sus propiedades a excepcion del idCurso para poder crear el curso exitosamente</param>
        /// <param name="IdGrupo">Este parametro es de tipo entero y se usa para saber a que grupo esta dirigido el curso. Tiene que ser un grupo existente
        /// Se puede hacer uso de <see cref="GrupoController.TraerGrupos"/> para verificar los grupos existentes</param>
        /// <example>
        /// <code>
        ///    Curso cursito = new Curso()
        ///    {
        ///        Nombre = "Curso c#",
        ///        UrlDescarga = curso.UploadCourse(), // PARA ELEGIR LO QUE QUIERE SUBIR EL USUARIO
        ///        Vigencia = new DateTime(2019, 06, 20, 10, 39, 30) // ANIO, MES, DIA, HORA, MINUTOS, SEGUNDOS
        ///    };
        ///    curso.CrearCurso(cursito, 1);
        /// </code>
        /// </example>
        /// <returns>Retorna un valor booleano. True para exito en la creacion. False para fallo en la creacion</returns>
        public bool CrearCurso(Curso curso, int IdGrupo)
        {
            SQLConexion         conn       = new SQLConexion();
            List <SqlParameter> parametros = new List <SqlParameter>();

            try
            {
                conn.Conectar(cadenaConexion);

                parametros.Add(new SqlParameter("@nombre", curso.Nombre));
                parametros.Add(new SqlParameter("@urlDescarga", curso.UrlDescarga));
                parametros.Add(new SqlParameter("@vigencia", curso.Vigencia));
                parametros.Add(new SqlParameter("@idGrupo", IdGrupo));

                conn.PrepararProcedimiento("sp_CrearCurso", parametros);
                conn.EjecutarProcedimiento();

                List <Usuario> usuarios      = new List <Usuario>();
                string         query         = "SELECT * FROM Usuario WHERE IdGrupo =" + IdGrupo + ";";
                SqlConnection  conexionQuery = new SqlConnection(cadenaConexion);
                conexionQuery.Open();
                SqlCommand    cmd = new SqlCommand(query, conexionQuery);
                SqlDataReader dr  = cmd.ExecuteReader();
                while (dr.Read())
                {
                    Usuario usuario = new Usuario();
                    usuario.IdUsuario = (int)dr["IdUsuario"];
                    usuario.IdGrupo   = (int)dr["IdGrupo"];
                    usuarios.Add(usuario);
                }
                conexionQuery.Close();

                query = "SELECT * FROM Curso WHERE Nombre =" + "'" + curso.Nombre + "'" + " AND UrlDescarga = " + "'" + curso.UrlDescarga + "'" + ";";
                conexionQuery.Open();
                SqlCommand    comandCurso   = new SqlCommand(query, conexionQuery);
                SqlDataReader drCurso       = comandCurso.ExecuteReader();
                int           idCursoCreado = 0;
                while (drCurso.Read())
                {
                    idCursoCreado = (int)drCurso["IdCurso"];
                }

                conexionQuery.Close();
                for (int i = 0; i < usuarios.Count; i++)
                {
                    List <SqlParameter> parametrosCursoEmpleado = new List <SqlParameter>();
                    parametrosCursoEmpleado.Add(new SqlParameter("@idUsuario", usuarios[i].IdUsuario));
                    parametrosCursoEmpleado.Add(new SqlParameter("@idCurso", idCursoCreado));
                    conn.PrepararProcedimiento("sp_InsertarCursoEmpleado", parametrosCursoEmpleado);
                    conn.EjecutarProcedimiento();
                }


                return(true);
            }
            catch (Exception Ex)
            {
                return(false);

                throw Ex;
            }
            finally
            {
                conn.Desconectar();
            }
        }