using DevExpress.Data;
using DevExpress.Web;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace OlympiaIntranet
{
    public partial class EsposizioneTitoli_old : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (HttpContext.Current.User.Identity.IsAuthenticated == false)
            {
                Response.Redirect("~/SignIn.aspx");
            }
            else
            {
                string loggedUser = HttpContext.Current.User.Identity.Name;

                switch (loggedUser)
                {
                    // Gestori
                    case "sbettinelli":
                        gridLookupGestore.Value = "BETTINELLI";
                        gridLookupGestore.Enabled = false;
                        break;
                    case "agamba":
                        gridLookupGestore.Value = "GAMBA";
                        gridLookupGestore.Enabled = false;
                        break;
                    case "rcammarino":
                        gridLookupGestore.Value = "CAMMARINO";
                        gridLookupGestore.Enabled = false;
                        break;
                    case "rtorre":
                        gridLookupGestore.Value = "TORRE";
                        gridLookupGestore.Enabled = false;
                        break;
                    // consulenti
                    case "mbeltramelli":
                        gridLookupGestore.Value = "PISONI";
                        gridLookupGestore.Enabled = false;
                        gridLookupConsulente.Value = "BELTRAMELLI";
                        gridLookupConsulente.Enabled = false;
                        break;
                    case "fmucci":
                        gridLookupGestore.Value = "PISONI";
                        gridLookupGestore.Enabled = false;
                        gridLookupConsulente.Value = "MUCCI";
                        gridLookupConsulente.Enabled = false;
                        break;
                    default:
                        gridLookupGestore.Enabled = true; // gli altri gestori abilitati a vedere tutto sono fcostalonga, ecanziani, fpisoni, glicciardello
                        break;
                }

                Session["cod_ges"] = gridLookupGestore.Value; // serve per popolare gridlookupLinea!!
            }

            if (IsPostBack) // Rielabora il grafico altrimenti il print non la stampa.
            {
                CaricaEsposizioneTitoli();
            }
        }

        protected void gridLookupGestore_ValueChanged(object sender, EventArgs e)
        {
            // ref: https://supportcenter.devexpress.com/ticket/details/q340370/aspxgridlookup-how-to-refresh-the-control-after-some-data-is-changed
            // note: Per refreshare gridlookupLinea sulla base del valore di gridLookupGestore, salvo il valore gestore in una variabile di sessione Session["cod_ges"] 
            //       e poi il refresh/rebind di SqlDSLinee verrà effettuato nell'evento lato client EndCallBack

            ASPxGridView grid = gridLookupGestore.GridView;
            object objGestore = grid.GetRowValues(grid.FocusedRowIndex, new string[] { "Gestore" });

            if (objGestore != null)
            {
                Session["cod_ges"] = (string)objGestore;
            }

        }

        protected void buttonEsposizioneTitoli_Click(object sender, EventArgs e)
        {
            CaricaEsposizioneTitoli();
        }

        private void CaricaEsposizioneTitoli()
        {
            ASPxGridView grid = gridLookupGestore.GridView;
            object objGestore = grid.GetRowValues(grid.FocusedRowIndex, new string[] { "Gestore" });
            grid = gridLookupLinea.GridView;
            object objLinea = grid.GetRowValues(grid.FocusedRowIndex, new string[] { "Linea" });
            grid = gridLookupConsulente.GridView;
            object objConsulente = grid.GetRowValues(grid.FocusedRowIndex, new string[] { "Consulente" });
            if (!(objGestore != null && objLinea != null && objConsulente != null)) return;

            DataTable dtEsposizioneTitoli = CommonClass.execQuery_Datatable_Sql("GDN_EsposizioneTitoli1", Properties.Settings.Default.SqlConnection, (string)objGestore, (string)objConsulente, (string)objLinea);
            gvEsposizioneTitoli.DataSource = dtEsposizioneTitoli;           
            gvEsposizioneTitoli.DataBind();
            if (gvEsposizioneTitoli.Columns["Titolo"] != null) gvEsposizioneTitoli.GroupBy(gvEsposizioneTitoli.Columns["Titolo"]);
            
        }




        protected void gvEsposizioneTitoli_HtmlDataCellPrepared(object sender, ASPxGridViewTableDataCellEventArgs e)
        {
            //string htmlValue = CommonClass.ExecSql("GDN_EsposizioneTitoli_Rating1", e.GetValue("CodiceTitolo").ToString());
            //e.Cell.Attributes.Add("onmouseover", string.Format("onShowPopup(event.x, event.y, '{0}')", htmlValue));
        }

        protected void gvEsposizioneTitoli_HtmlRowPrepared(object sender, ASPxGridViewTableRowEventArgs e)
        {
            if (e.RowType == GridViewRowType.Group)
            {
                e.Row.Attributes.Add("onmouseout", string.Format("onHidePopup();"));
            }
        }
    }
}