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 System.Data;
using DevExpress.Web;
using System.Drawing;

namespace OlympiaIntranet
{
    public partial class SelettoriFondiETF : System.Web.UI.Page
    {
        string IsinTitolo = String.Empty;
        protected void Page_Load(object sender, EventArgs e)
        {
            string filtroCategoria = Request.QueryString["categoria"];
            string filtroDivisaTitolo = Request.QueryString["divisa"];
            IsinTitolo = Request.QueryString["isinTitolo"];
            string filtroTipoRanking = Request.QueryString["tipoRanking"];
            //ASPxFondiETF.FilterExpression = "";
            if (String.IsNullOrEmpty(filtroCategoria) == false && String.IsNullOrEmpty(filtroDivisaTitolo) == false && filtroTipoRanking == "MorningStar") ASPxFondiETF.FilterExpression = $"MorningStarCategory='{filtroCategoria}' and ListingCurrency='{filtroDivisaTitolo}'";
            if (String.IsNullOrEmpty(filtroCategoria) == false && String.IsNullOrEmpty(filtroDivisaTitolo) == false && filtroTipoRanking == "Tepilora") ASPxFondiETF.FilterExpression = $"[TepiloraCategory]='{filtroCategoria}' and ListingCurrency='{filtroDivisaTitolo}'";

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

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

        protected void LinqServerModeDataSource1_Selecting(object sender, DevExpress.Data.Linq.LinqServerModeDataSourceSelectEventArgs e)
        {
            e.KeyExpression = "TepiloraCode";
        }

        protected void ASPxManualePDF_Click(object sender, EventArgs e)
        {
            Response.ContentType = "Application/pdf";
            Response.AppendHeader("Content-Disposition", "attachment; filename=Note tecniche per il calcolo del ranking di fondi ed etf.pdf");
            Response.TransmitFile(Server.MapPath("~/App_data/Note tecniche per il calcolo del ranking di fondi ed etf.pdf"));
            Response.End();
        }

        protected void ASPxFondiETF_HtmlRowPrepared(object sender, ASPxGridViewTableRowEventArgs e)
        {
            // Colora la riga solo se è stato passato isin del titolo come filtro da pagina EsposizioneTitoli.aspx
            if (e.RowType != GridViewRowType.Data) return;
            if (String.IsNullOrEmpty(IsinTitolo) == false)
            {
                object objIsin = e.GetValue("IsinCode");
                if (!String.IsNullOrEmpty(objIsin.ToString()))
                {
                    string isinTepilora = objIsin.ToString();
                    if (isinTepilora == IsinTitolo) e.Row.BackColor = Color.LightSeaGreen;

                }
            }
        }
    }
}