using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Collections;
using ceTe.DynamicPDF;
using ceTe.DynamicPDF.Text;
using PDFGenerator.Presentation.Section.Tables;
using PDFGenerator.BusinessLayer.DataSection;
using PDFGenerator.BusinessLayer;


namespace PDFGenerator.Presentation.Section {
    public class S75 : ISezione {


        DatiTabella datitab;

        public S75() {
            //
            // TODO: Add constructor logic here
            //
        }

        #region ISezione Members

        public void writeSezione(DataThread dataThread) {
            DocumentPDF document = dataThread.DocumentPDF;

            datitab = new DatiTabella();
            DataSetS75 set = (DataSetS75)dataThread.Data.DatiSezione;
            datitab.table = set.Tables["GradoCopertura"];
            DataThread dsp = dataThread;
            // controllo se esite un contocorrente aasociato
            bool ccPresente = false;
            foreach (DataRow r in datitab.table.Rows) {
                if ((bool)r["ContoCorrentePresente"])
                    ccPresente = true;
            }

            //elimino la colonna ContoCorrentePresente in modo che nn viene stampata
            datitab.table.Columns.Remove("ContoCorrentePresente");

            DataView view = new DataView(datitab.table);
            //datitab.table = view.ToTable(false, setTableForTable());
            datitab.table = view.ToTable();

            datitab.setY(document.getLastPos());
            datitab.setIsLinee(1);
            datitab.setHeader();
            datitab.setIsRet();
            datitab.setCell(135, ceTe.DynamicPDF.TextAlign.Left, Globals.OpenTypeFontVerdana, false);
            datitab.setCell(110, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdana, false);
            datitab.setCell(50, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdana, false);
            datitab.setCell(50, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdana, false);
            datitab.setCell(80, ceTe.DynamicPDF.TextAlign.Right, Globals.OpenTypeFontVerdana, false);


            //eventuali operazioni sul dataset
            //calcola se entra nella pagina altrimenti aggiunge una nuova pagina.
            if (document.checkMargin(datitab.GetRowDim() * datitab.getNumRow())) 
                document.addPage();

            //aggiorna l'indice
            document.setSezTitolo(dataThread.SezioneReport.Titolo);

            //document.page.Elements.Add(new ceTe.DynamicPDF.PageElements.Label(s, xMacroAsset + width, yLabel, (float)Convert.ToDouble(dati.campi[i]), heightLabel, (ceTe.DynamicPDF.Font)dati.font[i], fontSize, (ceTe.DynamicPDF.TextAlign)dati.align[i], ceTe.DynamicPDF.CmykColor.Black));

            datitab.setY(document.getLastPos());
            datitab.setX(document.getMargineLeft());
            datitab.setCellSpace(0);
            Tabella tab = new Tabella();
            //setta posizione tabella
            document.InsertTable(tab.getTabella(datitab));

            this.writeMarker(document);

            //aggiungo la nota
            // d.lisena modifica punto 19
            if (ccPresente) {
                document.setSezFooter(Resource.S75_S75BIS_Nota, (datitab.getNumRow() + 1) * datitab.GetRowDim());
            }
            else
                if (dsp.PartiteViaggiantiInvestimento + dsp.PartiteViaggiantiDisinvestimento != 0)
                    document.setSezFooter(Resource.S75_S75BIS_Nota, (datitab.getNumRow() + 1) * datitab.GetRowDim());

            ///// setto la posizione aggiornata
            document.setLastPos((datitab.getNumRow() + 1) * datitab.GetRowDim());
        }

        #endregion


        private void writeMarker(DocumentPDF document) {
            ceTe.DynamicPDF.Merger.ImportedPage page = document.getCurrentPage();
            float y = datitab.GetRowDim();
            //disegno i marker di riferimento per la S18

            foreach (DataRow myRow in datitab.table.Rows) {
                switch (myRow["Patrimonio"].ToString().Trim().ToUpper()) {
                    //FC 26062015 Aggionamento nuova Ragione Sociale
                    case "PATRIMONIO FIDEURAM":
                        //Marker 1
                        ceTe.DynamicPDF.PageElements.Rectangle rect = new ceTe.DynamicPDF.PageElements.Rectangle(document.getMargineLeft(), document.getLastPos() - 5 + y, 10 / 1.414F, 10 / 1.414F, 0, new RgbColor(0, 0, 0));
                        rect.Angle = 45;
                        page.Elements.Add(rect);
                        y += datitab.GetRowDim();
                        break;

                    case "PATRIMONIO SANPAOLO INVEST":
                    case "PATRIMONIO SAN PAOLO INVEST":

                        //Marker 1
                        rect = new ceTe.DynamicPDF.PageElements.Rectangle(document.getMargineLeft(), document.getLastPos() - 5 + y, 10 / 1.414F, 10 / 1.414F, 0, new RgbColor(0, 0, 0));
                        rect.Angle = 45;
                        page.Elements.Add(rect);
                        y += datitab.GetRowDim();
                        break;

                    case "Patrimonio IW Private Inv.":  //cecco

                        //Marker 1
                        rect = new ceTe.DynamicPDF.PageElements.Rectangle(document.getMargineLeft(), document.getLastPos() - 5 + y, 10 / 1.414F, 10 / 1.414F, 0, new RgbColor(0, 0, 0));
                        rect.Angle = 45;
                        page.Elements.Add(rect);
                        y += datitab.GetRowDim();
                        break;


                    case "PATRIMONIO COMPLESSIVO":
                        //Marker 2
                        rect = new ceTe.DynamicPDF.PageElements.Rectangle(document.getMargineLeft() - 4, document.getLastPos() - 4 + y, 8, 8, 0, new RgbColor(0, 0, 0));
                        //rect.CornerRadius = 5;
                        page.Elements.Add(rect);
                        y += datitab.GetRowDim();
                        break;

                    case "PATRIMONIO ALTRI ISTITUTI":
                        //Marker 3
                        rect = new ceTe.DynamicPDF.PageElements.Rectangle(document.getMargineLeft() - 5, document.getLastPos() - 5 + y, 10, 10, 0, new RgbColor(0, 0, 0));
                        rect.CornerRadius = 5;
                        page.Elements.Add(rect);
                        y += datitab.GetRowDim();
                        break;

                    default:
                        break;
                }
            }
        }
    }
}