using System;
using System.Collections.Generic;
using System.Web;
using System.Data;
using PDFGenerator.Presentation.Section.Tables;
using PDFGenerator.BusinessLayer.DataSection;
using PDFGenerator.BusinessLayer;
using ceTe.DynamicPDF.PageElements;
using ceTe.DynamicPDF.Text;
using PDFGenerator.Presentation.Section.Grafici;
using ContrattoSei.Utilities;


namespace PDFGenerator.Presentation.Section
{
    public class S141
    {


        public void writeSezione_old(DataThread dataThread)
        {

            DocumentPDF document = dataThread.DocumentPDF;


            DataSetS141 set = (DataSetS141)dataThread.Data.DatiSezione;


            float YGrafico = document.getLastPos() - 13;
            float XGrafico = document.getMargineLeft() + 70;
            int HGrafico = 170;
            int WGrafico = 350;

            #region Grafico

            AssiCartesiani assicartesiani = new AssiCartesiani(WGrafico, HGrafico);
            assicartesiani.DocumentPDF = document;
            assicartesiani.PositionX = XGrafico;
            assicartesiani.PositionY = YGrafico;
            assicartesiani.ShowGrid = false;
            assicartesiani.AxisXMaximum = 100;
            assicartesiani.AxisXInterval = 10;
            assicartesiani.AxisYMaximum = 11;
            assicartesiani.AxisYInterval = 1;
            assicartesiani.AxisYMultipleValues = true;
            assicartesiani.Datasource = set.Tables["Emittenti"];
            assicartesiani.DataSourceColumnName_AxisX = "Concentrazione";
            assicartesiani.DataSourceColumnName_AxisY = "RischioCreditoCodice";
            assicartesiani.BackImageFileName = "plotChartGradient_S141.gif";
            assicartesiani.Draw();


            document.setLastPos(170 - 23); //23


            #region Etichette Asse X e Asse Y
            ceTe.DynamicPDF.Merger.ImportedPage page = document.getCurrentPage();
            // Etichette asse x e y. Le aggiungo qui e non nella classe AssiCartesiani per meglio posizionarle.
            page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label("Rischio Credito", XGrafico - 70, YGrafico, 100, 12, Globals.OpenTypeFontVerdana, 9, ceTe.DynamicPDF.TextAlign.Left, ceTe.DynamicPDF.CmykColor.Black));
            page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label("Concentrazione", XGrafico + WGrafico + 5, YGrafico + HGrafico - 25, 100, 12, Globals.OpenTypeFontVerdana, 9, ceTe.DynamicPDF.TextAlign.Left, ceTe.DynamicPDF.CmykColor.Black));

            #endregion

            #region Legenda alla destra del Grafico

            page.Elements.Add(new ceTe.DynamicPDF.PageElements.Image(@UtilityManager.getAppSetting("pathGraf") + "LegendaS120.jpg", XGrafico + WGrafico + 4, YGrafico + HGrafico - 75, 0.50F));

            #endregion

            #endregion

            #region Tabella Emittenti
            DatiTabella datitab = new DatiTabella();
            datitab.CellClear();
            datitab.table = set.Tables["Emittenti"];

            //Disegno la tabella
            Tabella tabellaDati = new Tabella(document.getMargineLeft(), 590);
            tabellaDati.Header = true;
            //tabellaDati.Footer = false;
            tabellaDati.Datasource = datitab.table;
            tabellaDati.HeaderFont = 8;
            tabellaDati.Colonne.Add(new Colonna("Emittente", "Emittente", 90, TipoAllineamento.SINISTRA, false, 7, false, TipoColonna.IMMAGINE_E_TESTO));
            tabellaDati.Colonne.Add(new Colonna("CtvObbligazionario", "Controvalore<BR>obbligazionario (€)", 100, TipoAllineamento.DESTRA, false, 7, false));
            tabellaDati.Colonne.Add(new Colonna("CtvAzionario", "Controvalore<BR>azionario (€)", 80, TipoAllineamento.DESTRA, false, 7, false));
            tabellaDati.Colonne.Add(new Colonna("Concentrazione", "Concentrazione %", 84, TipoAllineamento.DESTRA, true, 7, false));
            tabellaDati.Colonne.Add(new Colonna("Rischio", "Rischio Credito", 108, TipoAllineamento.DESTRA, true, 6, false));
            tabellaDati.Colonne.Add(new Colonna("Rating", "Rating", 50, TipoAllineamento.DESTRA, false, 7, false));

            tabellaDati.Draw(datitab, document);

            #region Simboli delle emittenti

            int nPallino = 1;
            float yPallino = tabellaDati.Y + 14;
            float xPallino = document.getMargineLeft() - 10;
            foreach (DataRow drSimbolo in tabellaDati.Datasource.Rows)
            {
                ceTe.DynamicPDF.PageElements.Image simbolo = new Image(@UtilityManager.getAppSetting("pathGraf") + "pallino" + nPallino.ToString() + ".png", xPallino, yPallino, 0.30F);
                page.Elements.Add(simbolo);

                yPallino += 23;
                nPallino++;
            }

            #endregion

            #endregion

            bool notaNeeded = false;
            foreach (DataRow rw in set.Emittenti.Rows)
            {
                notaNeeded = notaNeeded || bool.Parse(rw["Nota"].ToString());
            }

            if (notaNeeded)
                document.getCurrentPage().Elements.Add(new Label(Resource.Nota_TabellaEmittenti, datitab.getX(), document.getLastPos() + tabellaDati.AltezzaTabella, 500F, 30F, Globals.OpenTypeFontVerdana, 8));

            document.setLastPos(900);


        }

        public void writeSezione(DataThread dataThread) {

            DocumentPDF document = dataThread.DocumentPDF;


            DataSetS141 set = (DataSetS141)dataThread.Data.DatiSezione;


            ceTe.DynamicPDF.Merger.ImportedPage page = document.getCurrentPage();
            float YTEmittenti = document.getLastPos() - 13;
            float XTEmittenti = document.getMargineLeft();

            bool VediGrafico = false;
            bool VediNota = false;

            foreach (DataRow emit in set.Emittenti.Rows)  {
                if (!emit["Rischio"].ToString().Equals("n.a.") && !emit["Rischio"].ToString().Equals("n.c."))   
                                                      VediGrafico = true;               
                if (bool.Parse(emit["Nota"].ToString()))
                                                  VediNota = true;                    
                 
            }//VediGraficoNota

            if (VediGrafico)   {
                #region Grafico

                float YGrafico = document.getLastPos() - 80; //50
                float XGrafico = document.getMargineLeft() + 70;
                int HGrafico = 170;
                int WGrafico = 350;

                AssiCartesiani assicartesiani = new AssiCartesiani(WGrafico, HGrafico);
                assicartesiani.DocumentPDF = document;
                assicartesiani.PositionX = XGrafico;
                assicartesiani.PositionY = YGrafico;
                assicartesiani.ShowGrid = false;
                assicartesiani.AxisXMaximum = 100;
                assicartesiani.AxisXInterval = 10;
                assicartesiani.AxisYMaximum = 11;
                assicartesiani.AxisYInterval = 1;
                assicartesiani.AxisYMultipleValues = true;
                assicartesiani.Datasource = set.Emittenti;
                assicartesiani.DataSourceColumnName_AxisX = "Concentrazione";
                assicartesiani.DataSourceColumnName_AxisY = "RischioCreditoCodice";
                assicartesiani.BackImageFileName = "plotChartGradient_S141.gif";
                assicartesiani.Draw();

                document.setLastPos(170 - 23);

                page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label("Rischio Credito", XGrafico - 70, YGrafico, 100, 12, Globals.OpenTypeFontVerdana, 9, ceTe.DynamicPDF.TextAlign.Left, ceTe.DynamicPDF.CmykColor.Black));
                page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label("Concentrazione", XGrafico + WGrafico + 5, YGrafico + HGrafico - 25, 100, 12, Globals.OpenTypeFontVerdana, 9, ceTe.DynamicPDF.TextAlign.Left, ceTe.DynamicPDF.CmykColor.Black));
                page.Elements.Add(new ceTe.DynamicPDF.PageElements.Image(@UtilityManager.getAppSetting("pathGraf") + "LegendaS120.jpg", XGrafico + WGrafico + 4, YGrafico + HGrafico - 75, 0.50F));

                YTEmittenti = 590;
                #endregion
            }

            #region Tabella Emittenti
                DatiTabella datitab = new DatiTabella();
                datitab.CellClear();
                datitab.table = set.Emittenti;
                Tabella tabellaDati = new Tabella(XTEmittenti, YTEmittenti);
                tabellaDati.Header = true;               
                tabellaDati.Datasource = datitab.table;
                tabellaDati.HeaderFont = 8;
                tabellaDati.Colonne.Add(new Colonna("Emittente", "Emittente", 90, TipoAllineamento.SINISTRA, false, 7, false, TipoColonna.IMMAGINE_E_TESTO));
                tabellaDati.Colonne.Add(new Colonna("CtvObbligazionario", "Controvalore<BR>obbligazionario (€)", 100, TipoAllineamento.DESTRA, false, 7, false));
                tabellaDati.Colonne.Add(new Colonna("CtvAzionario", "Controvalore<BR>azionario (€)", 80, TipoAllineamento.DESTRA, false, 7, false));
                tabellaDati.Colonne.Add(new Colonna("Concentrazione", "Concentrazione %", 84, TipoAllineamento.DESTRA, true, 7, false));
                tabellaDati.Colonne.Add(new Colonna("Rischio", "Rischio Credito", 108, TipoAllineamento.DESTRA, true, 6, false));
                tabellaDati.Colonne.Add(new Colonna("Rating", "Rating", 50, TipoAllineamento.DESTRA, false, 7, false));
                tabellaDati.Draw(datitab, document);

                if (VediGrafico)
                {
                    int nPallino = 1;
                    float yPallino = tabellaDati.Y + 14;
                    float xPallino = document.getMargineLeft() - 10;
                    foreach (DataRow drSimbolo in tabellaDati.Datasource.Rows)
                    {
                        ceTe.DynamicPDF.PageElements.Image simbolo = new Image(@UtilityManager.getAppSetting("pathGraf") + "pallino" + nPallino.ToString() + ".png", xPallino, yPallino, 0.30F);
                        page.Elements.Add(simbolo);

                        yPallino += 23;
                        nPallino++;
                    }
                }

                if (VediNota)
                    document.getCurrentPage().Elements.Add(new Label(Resource.Nota_TabellaEmittenti, datitab.getX(), document.getLastPos() + tabellaDati.AltezzaTabella, 500F, 30F, Globals.OpenTypeFontVerdana, 8));

            #endregion           
         
            document.setLastPos(900);
            
        }



    } 
}