using System;
using System.Data;
using PDFGenerator.BusinessLayer.DataSection;
using PDFGenerator.BusinessLayer;
using System.Collections.Generic;
using PDFGenerator;
using NLog;

public class DSS75GradoCopertura : IDataSection
{
    NLog.Logger logger = NLog.LogManager.GetCurrentClassLogger();
    #region IDataSection Members
    public StructColor toBeFound = new StructColor();

    public DataSectionResult getDataSection(List<SessionStruct> tabelleSessione, string querySql, DataThread dataThread)
    {
        try
        {
            FormatNum conv = new FormatNum();
            DataSectionResult dsr = new DataSectionResult();

            DataSetS75 ds75 = new DataSetS75();
            DataSetS75.GradoCoperturaRow dr;

            DataTable dt = SectionManager.GetDataSection(tabelleSessione, querySql, dataThread);
            bool ccpresente = false;
           
           
        
            foreach (DataRow row in dt.Rows) {
   
                    dr = ds75.GradoCopertura.NewGradoCoperturaRow();
                    dr.Patrimonio = row["nomePatrimonio"].ToString();
                    dr.Controvalore = Convert.ToDecimal(row["controvalore"]);
                    dr.Percentuale = Convert.ToDecimal(row["percentuale"]);
                    if (row["varString"] != DBNull.Value)
                        dr.Var = row["varString"].ToString();
                    else
                        dr.Var = conv.ConvertNum(row["var"]);//100.00F;

                    if (row["coperturaString"] != DBNull.Value)
                        dr.Copertura = row["coperturaString"].ToString();
                    else
                        dr.Copertura = conv.ConvertNum(row["copertura"]);//100.00F;

                    if (!ccpresente)
                        ccpresente = Convert.ToInt16(row["NotaCCNetto"]).Equals(1);

                    dr["ContoCorrentePresente"] = ccpresente;
                    ds75.GradoCopertura.AddGradoCoperturaRow(dr);
                
            }

            if (ccpresente)
                ds75.GradoCopertura.Columns["Controvalore"].Caption = "Controvalore* <br> � &nbsp; &nbsp; &nbsp; &nbsp;";
            else
                ds75.GradoCopertura.Columns["Controvalore"].Caption = "Controvalore <br> � &nbsp; &nbsp; &nbsp; &nbsp;";

            ds75.GradoCopertura.Columns["Var"].Caption = "VaR<BR>%";

            dsr.DatiSezione = ds75;
            dsr.Esito = ds75.GradoCopertura.Rows.Count;
 
            return dsr;
        }
        catch (Exception ex)
        {
            logger.Error(ex);
            throw ex;
        }
    }

    #endregion
}