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

// Codice Titolo | ISIN | Descrizione Titolo | Ticker Bloomberg | Tipo titolo | Descrizione Tipo Titolo | Asset Class | Descrizione Asset Class | Flag Certificate | Mercato | Prezzo | Data Ultimo Prezzo
namespace OlympiaIntranet
{
    public partial class ElencoTitoli : System.Web.UI.Page
    {
        string mySqlconnString = "Server=192.168.125.10;Port=3306;Database=olympia;Uid=pegasus9x;Pwd=Locarno_4139$;";
        protected void Page_Load(object sender, EventArgs e)
        {
            if (HttpContext.Current.User.Identity.IsAuthenticated == false)
            {
                Response.Redirect("~/SignIn.aspx");
            }

            // Setta in tutte le colonne di default ricerca per 'Contains' invece che per 'Begins with' (mettere in Page_Load altrimenti non funziona!)
            CommonClass.SetColumnFilterContains(ASPxTitoliGDN);

            //if (!IsPostBack)
            //{
                MySqlConnection conn = new MySqlConnection(mySqlconnString);
                MySqlCommand cmd = conn.CreateCommand();

                cmd.CommandText = "select cod_tit as CodiceTitolo , cod_isin as ISIN , des_tit as DescrizioneTitolo, des_tit_bre as DescrizioneTitoloBreve, cod_div as Divisa, security_type as SecurityType, cod_bloomberg as TickerBBG,"+
                                  "CASE WHEN fondo_azi = 'S' THEN 'Fondo Azionario' "+
                                  "WHEN fondo_bil = 'S' THEN 'Fondo Bilanciato' "+
                                  "WHEN fondo_obb = 'S' THEN 'Fondo Obbligazionario' " +
                                  "WHEN fondo_mon = 'S' THEN 'Fondo Monetario' "+
                                  "WHEN certificate = 'S' THEN 'Certificato' "+
                                  "END as Tipo,"+
                                  "ETF, cod_mer as Mercato, divisore as Divisore, t.cod_tiptit as TipoTitolo, tt.des_tiptit AS DescrTipoTitolo, bloccato as Bloccato, noacquisti as nobuy, link_prezzi as LinkPrezzi, link_error as LinkError, new_entry as NewEntry, in_portafoglio as InPortafoglio," +
                                  "utilizzato as Utilizzato, conflitto as Conflitto, prezzo_ult as UltimoPrezzo, data_ult as DataUltimoPrezzo, note as Note, coordinate as Coordinate "+
                                  "from tit t left join tabtiptit tt ON tt.cod_tiptit=t.cod_tiptit where estinto is null";
                conn.Open();

                MySqlDataReader dataReader = cmd.ExecuteReader();
                var dataTable = new DataTable();
                dataTable.Load(dataReader);
                conn.Close();

                ASPxTitoliGDN.DataSource = dataTable;
                ASPxTitoliGDN.DataBind();
            //}
        }

        protected void ASPxExportXls_Click(object sender, EventArgs e)
        {
            ASPxGridViewExporter.ExportSelectedRowsOnly = false;
            ASPxGridViewExporter.FileName = DateTime.Now.ToString("yyyyMMdd_HHmm") + " - Tabella Titoli Guardian";
            XlsxExportOptionsEx op = new XlsxExportOptionsEx() { ExportType = ExportType.DataAware }; // in DataAware mode l'evento ASPxGridViewExporter_RenderBrick non viene eseguito!!
            ASPxGridViewExporter.WriteXlsxToResponse(op);
        }
    }
}