using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using QuintoCaminoV2.Data_objects;
namespace QuintoCaminoV2.Admin
{
    public partial class Administrator : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            getCharlas();
            getCursos();
            geUsuarios();
        }

        public void geUsuarios()
        {
            DataLayer oDataLayer = new DataLayer();
            Data_objects.Charlas oCharlas = new Data_objects.Charlas();
            grdUsers.DataSource = oDataLayer.get_AllUsers();
            grdUsers.DataBind();

        }

        #region "CHARLAS"
        public void getCharlas()
        {
            DataLayer oDataLayer = new DataLayer();
            Data_objects.Charlas oCharlas = new Data_objects.Charlas();
            grdCharlas.DataSource = oDataLayer.get_Charlas(oCharlas);
            grdCharlas.DataBind();

        }

        protected void btnAceptar_Click(object sender, EventArgs e)
        {

            if (btnAceptar.Text == "Guardar")
            {
                List<Data_objects.Charlas> lstCharlas = new List<Data_objects.Charlas>();
                Data_objects.Charlas oCharla = new Data_objects.Charlas();
                DataLayer oDataLayer = new DataLayer();
                Errores oError = new Errores();

                oCharla.vchTitulo = txtTitulo.Text;
                oCharla.vchUrl = txtTitulo.Text;
                oCharla.vchFecha = txtFcharla.Text;
                oCharla.vchDescripcionCorta = txtDescCorta.Text;
                oCharla.bitActivo = chkActivo.Checked == true ? true : false;
                lstCharlas.Add(oCharla);

                oError = oDataLayer.insertCharla(lstCharlas);

                if (!(oError.bitError))
                {
                    ModalPopupExtender1.Hide();
                    getCharlas();
                }
            }

            if (btnAceptar.Text == "Actualizar")
            {
                List<Data_objects.Charlas> lstCharlas = new List<Data_objects.Charlas>();
                Data_objects.Charlas oCharla = new Data_objects.Charlas();
                DataLayer oDataLayer = new DataLayer();
                Errores oError = new Errores();
                oCharla.intCharlaId = Convert.ToInt32(hidId.Value);
                oCharla.vchTitulo = txtTitulo.Text;
                oCharla.vchUrl = txtUrl.Text;
                oCharla.vchFecha = txtFcharla.Text;
                oCharla.vchDescripcionCorta = txtDescCorta.Text;
                oCharla.bitActivo = chkActivo.Checked == true ? true : false;
                lstCharlas.Add(oCharla);

                oError = oDataLayer.UpdateCharla(lstCharlas);

                if (!(oError.bitError))
                {
                    ModalPopupExtender1.Hide();
                    getCharlas();
                }
            }

        }


        protected void grdCharlas_SelectedIndexChanging(object sender, GridViewSelectEventArgs e)
        {


            GridViewRow oRow = grdCharlas.Rows[e.NewSelectedIndex];
            DataLayer oDataLayer = new DataLayer();
            Data_objects.Charlas oCharlas = new Data_objects.Charlas();
            oCharlas.intCharlaId = Convert.ToInt32(oRow.Cells[0].Text);


            //if (oCom.SortExpression == "Editar")
            //{
            foreach (Data_objects.Charlas objCha in oDataLayer.get_Charlas_by_Id(oCharlas))
            {
                hidId.Value = objCha.intCharlaId.ToString();
                txtTitulo.Text = objCha.vchTitulo;
                txtFcharla.Text = objCha.vchFecha;
                txtDescCorta.Text = objCha.vchDescripcionCorta;
                chkActivo.Checked = objCha.bitActivo == true ? true : false;
                txtUrl.Text = objCha.vchUrl;

            }
            btnAceptar.Text = "Actualizar";
            ModalPopupExtender1.Show();
            //}


        }

        protected void btnAddCharla_Click(object sender, EventArgs e)
        {
            btnAceptar.Text = "Guardar";
            ModalPopupExtender1.Show();
        }


        public void controlClearCharlas()
        {
            txtTitulo.Text = string.Empty;
            txtFcharla.Text = string.Empty;
            txtDescCorta.Text = string.Empty;
            txtUrl.Text = string.Empty;
            chkActivo.Checked = false;
        }

        protected void grdCharlas_RowDeleting(object sender, GridViewDeleteEventArgs e)
        {
            List<Data_objects.Charlas> lstCharlas = new List<Data_objects.Charlas>();
            Data_objects.Charlas oCharla = new Data_objects.Charlas();
            DataLayer oDataLayer = new DataLayer();
            Errores oError = new Errores();
            oCharla.intCharlaId = Convert.ToInt32(e.Values[0]);
            lstCharlas.Add(oCharla);

            oError = oDataLayer.DeleteCharla(lstCharlas);

            if (!(oError.bitError))
            {
                getCharlas();
            }
        }

        protected void grdCharlas_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                // loop all data rows
                foreach (DataControlFieldCell cell in e.Row.Cells)
                {
                    // check all cells in one row
                    foreach (Control control in cell.Controls)
                    {
                        // Must use LinkButton here instead of ImageButton
                        // if you are having Links (not images) as the command button.
                        ImageButton button = control as ImageButton;
                        if (button != null && button.CommandName == "Delete")
                            // Add delete confirmation
                            button.OnClientClick = "if (!confirm('Are you sure " +
                                   "you want to delete this record?')) return;";
                    }
                }
            }
        }

        #endregion

        #region "CURSOS"
        public void getCursos()
        {

            DataLayer oDataLayer = new DataLayer();
            Data_objects.Cursos oCursos = new Data_objects.Cursos();
            grdCursos.DataSource = oDataLayer.get_Cursos(oCursos);
            grdCursos.DataBind();


        }

        protected void grdCursos_SelectedIndexChanging(object sender, GridViewSelectEventArgs e)
        {
            GridViewRow oRow = grdCursos.Rows[e.NewSelectedIndex];
            DataLayer oDataLayer = new DataLayer();
            Data_objects.Cursos oCharlas = new Data_objects.Cursos();
            oCharlas.intCursoId = Convert.ToInt32(oRow.Cells[0].Text);


            //if (oCom.SortExpression == "Editar")
            //{
            foreach (Data_objects.Cursos objCha in oDataLayer.get_Cursos_by_Id(oCharlas))
            {
                hidId0.Value = objCha.intCursoId.ToString();
                txtTitCurso.Text = objCha.vchTitulo;
                txtDesCurCorta.Text = objCha.vchDescripcionCorta;
                txtDesc.Text = objCha.vchDescripcion;
                txtCosto.Text = objCha.decCosto.ToString();
                chkCursoActivo.Checked = objCha.bitActivo == true ? true : false;
            }
            btnAceptarCr.Text = "Actualizar";
            ModalPopupExtender2.Show();
            //}
        }

        protected void grdCursos_RowDeleting(object sender, GridViewDeleteEventArgs e)
        {
            List<Data_objects.Cursos> lstCharlas = new List<Data_objects.Cursos>();
            Data_objects.Cursos oCursos = new Data_objects.Cursos();
            DataLayer oDataLayer = new DataLayer();
            Errores oError = new Errores();

            oCursos.intCursoId = Convert.ToInt32(e.Values[0]);
            lstCharlas.Add(oCursos);

            oError = oDataLayer.DeleteCursos(lstCharlas);

            if (!(oError.bitError))
            {
                getCursos();
            }
        }

        protected void btnAceptarCr_Click(object sender, EventArgs e)
        {
            if (btnAceptarCr.Text == "Guardar")
            {
                List<Data_objects.Cursos> lstCursos = new List<Data_objects.Cursos>();
                Data_objects.Cursos oCursos = new Data_objects.Cursos();
                DataLayer oDataLayer = new DataLayer();
                Errores oError = new Errores();

                oCursos.vchTitulo = txtTitCurso.Text;
                oCursos.vchDescripcionCorta = txtDesCurCorta.Text;
                oCursos.vchDescripcion = txtDesc.Text;
                oCursos.decCosto = Convert.ToInt32(txtCosto.Text);
                oCursos.bitActivo = chkCursoActivo.Checked == true ? true : false;
                lstCursos.Add(oCursos);

                oError = oDataLayer.insertCurso(lstCursos);

                if (!(oError.bitError))
                {
                    ModalPopupExtender2.Hide();
                    getCursos();
                }
            }

            if (btnAceptarCr.Text == "Actualizar")
            {
                List<Data_objects.Cursos> lstCursos = new List<Data_objects.Cursos>();
                Data_objects.Cursos oCursos = new Data_objects.Cursos();
                DataLayer oDataLayer = new DataLayer();
                Errores oError = new Errores();
                oCursos.intCursoId = Convert.ToInt32(hidId0.Value);
                oCursos.vchTitulo = txtTitCurso.Text;
                oCursos.vchDescripcionCorta = txtDesCurCorta.Text;
                oCursos.vchDescripcion = txtDesc.Text;
                oCursos.decCosto = Convert.ToInt32(txtCosto.Text);
                oCursos.bitActivo = chkCursoActivo.Checked == true ? true : false;
                lstCursos.Add(oCursos);

                oError = oDataLayer.UpdateCursos(lstCursos);

                if (!(oError.bitError))
                {
                    ModalPopupExtender2.Hide();
                    getCursos();
                }
            }
        }

        protected void btnAddCrs_Click(object sender, EventArgs e)
        {
            btnAceptarCr.Text = "Guardar";
            ModalPopupExtender2.Show();
        }




        public void controlClearCursos()
        {
            txtTitCurso.Text = string.Empty;
            txtDesCurCorta.Text = string.Empty;
            txtDesc.Text = string.Empty;
            txtCosto.Text = string.Empty;
            chkActivo.Checked = false;
        }


        protected void grdCursos_RowDataBound1(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                // loop all data rows
                foreach (DataControlFieldCell cell in e.Row.Cells)
                {
                    // check all cells in one row
                    foreach (Control control in cell.Controls)
                    {
                        // Must use LinkButton here instead of ImageButton
                        // if you are having Links (not images) as the command button.
                        ImageButton button = control as ImageButton;
                        if (button != null && button.CommandName == "Delete")
                            // Add delete confirmation
                            button.OnClientClick = "if (!confirm('Are you sure " +
                                   "you want to delete this record?')) return;";
                    }
                }
            }
        }



        #endregion

        #region "CLASES"



        protected void btnAddCls_Click(object sender, EventArgs e)
        {
            btnAceptarCL.Text = "Guardar";
            ModalPopupExtender3.Show();
        }

        protected void btnAceptarCL_Click(object sender, EventArgs e)
        {
            if (btnAceptarCL.Text == "Guardar")
            {
                List<Data_objects.Clases> lstClase = new List<Data_objects.Clases>();
                Data_objects.Clases oClases = new Data_objects.Clases();
                DataLayer oDataLayer = new DataLayer();
                Errores oError = new Errores();

                oClases.intCursoId = Convert.ToInt32(HiddenField3.Value);
                oClases.vchTituloClase = txtTitClase.Text;
                oClases.vchDescClase = txtDescClase.Text;
                oClases.vchURLClase = txtURLclase.Text;
                oClases.bitActivo = chkActClase.Checked == true ? true : false;
                lstClase.Add(oClases);

                oError = oDataLayer.insertClase(lstClase);

                if (!(oError.bitError))
                {
                    ModalPopupExtender3.Hide();
                    getClases(Convert.ToInt32(HiddenField3.Value));
                }
            }

            if (btnAceptarCL.Text == "Actualizar")
            {
                List<Data_objects.Clases> lstClases = new List<Data_objects.Clases>();
                Data_objects.Clases oClases = new Data_objects.Clases();
                DataLayer oDataLayer = new DataLayer();
                Errores oError = new Errores();

                oClases.intClaseID = Convert.ToInt32(HiddenField2.Value);
                oClases.intCursoId = Convert.ToInt32(HiddenField1.Value);
                oClases.vchTituloClase = txtTitClase.Text;
                oClases.vchDescClase = txtDescClase.Text;
                oClases.vchURLClase = txtURLclase.Text;
                oClases.bitActivo = chkActClase.Checked == true ? true : false;
                lstClases.Add(oClases);

                oError = oDataLayer.UpdateClases(lstClases);

                if (!(oError.bitError))
                {
                    ModalPopupExtender3.Hide();
                    getClases(Convert.ToInt32(HiddenField3.Value));
                }
            }
        }

        #endregion

        protected void grdCursos_RowEditing(object sender, GridViewEditEventArgs e)
        {

        }

        public void getClases(int idCurso)
        {
            grdClases.DataSource = null;
            grdClases.DataBind();
            DataLayer oDataLayer = new DataLayer();
            Data_objects.Clases oClases = new Data_objects.Clases();
            oClases.intCursoId = idCurso;

            grdClases.DataSource = oDataLayer.get_Clases(oClases);
            grdClases.DataBind();
        }

        protected void ImageButton1_Command(object sender, CommandEventArgs e)
        {
            //GridViewRow oRow = grdCursos.Rows[e.NewEditIndex];


            HiddenField3.Value = e.CommandArgument.ToString();
            getClases(Convert.ToInt32(e.CommandArgument));
            lblCurso.Text = e.CommandName.ToString();

        }

        protected void imgBtnEditUsu_Command(object sender, CommandEventArgs e)
        {



            HiddenField4.Value = e.CommandArgument.ToString();
            DataLayer oDataLayer = new DataLayer();
            Data_objects.Usuarios oUsuarios = new Data_objects.Usuarios();
            oUsuarios.vchUsuario = e.CommandName.ToString();


            //if (oCom.SortExpression == "Editar")
            //{
            foreach (Data_objects.Usuarios objUsu in oDataLayer.get_UsuarioByUser(oUsuarios))
            {
                //hidId0.Value = objCha.intCursoId.ToString();
                txtUsuario.Text = objUsu.vchUsuario;
                txtEmail.Text = objUsu.vchEmail;
                txtContrasena.Text = objUsu.vchContrasena;
                TxtTelefono.Text = objUsu.vchTelefono;
                txtMovil.Text = objUsu.vchMovil;
                chkUserActivo.Checked = objUsu.bitActivo == true ? true : false;
            }

            btnAceptUsu.Text = "Actualizar";
            ModalPopupExtender4.Show();
        }

        protected void btnAceptUsu_Click(object sender, EventArgs e)
        {
            List<Data_objects.Usuarios> lstUsuario = new List<Data_objects.Usuarios>();
            Data_objects.Usuarios oUsu = new Data_objects.Usuarios();
            DataLayer oDataLayer = new DataLayer();
            Errores oError = new Errores();

            oUsu.intUsuarioId = Convert.ToInt32(HiddenField4.Value);
            oUsu.vchUsuario = txtUsuario.Text;
            oUsu.vchEmail = txtEmail.Text;
            oUsu.vchContrasena = txtContrasena.Text;
            oUsu.vchTelefono = TxtTelefono.Text;
            oUsu.vchMovil = txtMovil.Text;
            oUsu.bitActivo = chkUserActivo.Checked == true ? true : false;
            lstUsuario.Add(oUsu);

            oError = oDataLayer.UpdateUsuario(lstUsuario);

            if (!(oError.bitError))
            {
                ModalPopupExtender4.Hide();
                geUsuarios();
            }
        }

        protected void imgBtnCurByUser_Command(object sender, CommandEventArgs e)
        {
            ModalPopupExtender5.Show();
            HiddenField7.Value = e.CommandArgument.ToString();


            Data_objects.Usuarios oUsu = new Data_objects.Usuarios();
            oUsu.intUsuarioId = Convert.ToInt32(e.CommandArgument);


            getCursos_NotUsu(oUsu);
            get_CursosByUser(oUsu);

        }

        protected void btnAddCrsUsu_Click(object sender, EventArgs e)
        {

        }

        public void getCursos_NotUsu(Usuarios oUsu)
        {
            DataLayer oDataLayer = new DataLayer();
            ListBox1.DataSource = oDataLayer.get_Cursos_CurNotUsu(oUsu);
            ListBox1.DataTextField = "vchTitulo";
            ListBox1.DataValueField = "intCursoId";
            ListBox1.DataBind();
        }

        public void get_CursosByUser(Usuarios oUsu)
        {
            DataLayer oDataLayer = new DataLayer();
            ListBox2.DataSource = oDataLayer.get_Cursos_by_User(oUsu);
            ListBox2.DataTextField = "vchTitulo";
            ListBox2.DataValueField = "intCursoId";
            ListBox2.DataBind();
        }

        protected void LinkButton1_Click(object sender, EventArgs e)
        {
            Data_objects.Usuarios oUsur = new Data_objects.Usuarios();
            oUsur.intUsuarioId = Convert.ToInt32(HiddenField7.Value);

            DataLayer oDataLayer = new DataLayer();
            Data_objects.Usuarios oUsu = new Data_objects.Usuarios();
            Data_objects.Cursos oCur = new Data_objects.Cursos();
            Errores oError = new Errores();


            oUsu.intUsuarioId = Convert.ToInt32(HiddenField7.Value);
            oCur.intCursoId = Convert.ToInt32(ListBox1.SelectedValue);
            oError = oDataLayer.insertRelCurUsu(oUsu, oCur);

            if (!(oError.bitError))
            {
                ModalPopupExtender5.Show();
                getCursos_NotUsu(oUsur);
                get_CursosByUser(oUsur);
            }

            // insertRelCurUsu
        }

        protected void LinkButton2_Click(object sender, EventArgs e)
        {
            Data_objects.Usuarios oUsur = new Data_objects.Usuarios();
            oUsur.intUsuarioId = Convert.ToInt32(HiddenField7.Value);

            DataLayer oDataLayer = new DataLayer();
            Data_objects.Usuarios oUsu = new Data_objects.Usuarios();
            Data_objects.Cursos oCur = new Data_objects.Cursos();
            Errores oError = new Errores();


            oUsu.intUsuarioId = Convert.ToInt32(HiddenField7.Value);
            oCur.intCursoId = Convert.ToInt32(ListBox2.SelectedValue);
            oError = oDataLayer.DeleteRelCurUsu(oUsu, oCur);

            if (!(oError.bitError))
            {
                ModalPopupExtender5.Show();
                getCursos_NotUsu(oUsur);
                get_CursosByUser(oUsur);
            }
        }

    }
}