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 PDFGenerator.BusinessLayer.DataSection;
using System.Collections.Generic;
using PDFGenerator.BusinessLayer;
using PDFGenerator;
using NLog;
//using it.bancafideuram.nac;

/// <summary>
/// Summary description for DSS18PatrimonioFinanziarioRischio
/// </summary>
public class DSS18PatrimonioFinanziarioRischio : IDataSection
{
    NLog.Logger logger = NLog.LogManager.GetCurrentClassLogger();
    bool _onlyBF;

    public DSS18PatrimonioFinanziarioRischio()
    {
        //
        // TODO: Add constructor logic here
        //
        _onlyBF = false;
    }
    #region IDataSection Members

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

            Random rnd = new Random();
            DataSetS18 ds18 = new DataSetS18();
            DataRow dr = ds18.RischioPatrimonioFinanziario.NewRow();
            FormatNum conv = new FormatNum();

            DataTable dt = SectionManager.GetDataSection(tabelleSessione, querySql, dataThread);

            if (dt.Rows.Count > 0)
            {
                // Rischio Profilo finanziario
                if (dt.Rows[0]["codiceProfilo"] != DBNull.Value)
                {
                    dr = ds18.RischioPatrimonioFinanziario.NewRow();
                    dr["Profilo"] = Convert.ToInt32(dt.Rows[0]["codiceProfilo"].ToString());
                    //dr["Var"] = Convert.ToDecimal(dt.Rows[0]["varProfilo"]);
                    ds18.RischioPatrimonioFinanziario.Rows.Add(dr);
                }

                string varBF = dt.Rows[0]["varBFString"].ToString().ToLower();
                string varTerzi = dt.Rows[0]["varTerziString"].ToString().ToLower();                

                //if (dataThread.Patrimoniobancafideuramctv - dataThread.ContoCorrente != 0)
                if (dataThread.PatrimonioBancaFideuramCtvAlNettoContoCorrente != 0 && varBF != "n.c.")
                {
                    dr = ds18.RischioFinanziarioVarTotali.NewRow();
                    //FC 26062015 Aggionamento nuova Ragione Sociale
                    //dr["Descrizione"] = "Portafoglio Banca Fideuram";
                    dr["Descrizione"] = "Portafoglio Fideuram";
                    dr["Var"] = dt.Rows[0]["varBF"];
                    dr["VaRString"] = dt.Rows[0]["varBFString"];
                    ds18.RischioFinanziarioVarTotali.Rows.Add(dr);

                    dr = ds18.GradoCopertura.NewRow();
                    dr["Totale"] = Convert.ToDecimal(dt.Rows[0]["coperturaBF"]);

                    ds18.GradoCopertura.Rows.Add(dr);
                }

                //if (!_onlyBF && dataThread.Patrimonioterzictv  - dataThread.PatrimonioTerziContoCorrente != 0)                  
                if (!_onlyBF && (dataThread.PatrimonioterzictvAlNettoContoCorrente != 0 && varTerzi != "n.c."))
                {
                    dr = ds18.RischioFinanziarioVarTotali.NewRow();
                    dr["Descrizione"] = "Portafoglio Altri Istituti";
                    dr["Var"] = dt.Rows[0]["varTerzi"];
                    dr["VaRString"] = dt.Rows[0]["varTerziString"];
                    ds18.RischioFinanziarioVarTotali.Rows.Add(dr);
                }

                //if (!_onlyBF && dataThread.PatrimonioBancaFideuramCtvAlNettoContoCorrente != 0 && dataThread.PatrimonioterzictvAlNettoContoCorrente != 0 && varBF != "n.c." && varTerzi != "n.c.")
                if (!_onlyBF)
                {
                    if ((dataThread.PatrimonioBancaFideuramCtvAlNettoContoCorrente != 0 && varBF != "n.c.")  || (dataThread.PatrimonioterzictvAlNettoContoCorrente != 0 && varTerzi !="n.c."))
                    {
                        dr = ds18.RischioFinanziarioVarTotali.NewRow();
                        dr["Descrizione"] = "Portafoglio Complessivo";
                        dr["Var"] = dt.Rows[0]["varComplessivo"];
                        dr["VaRString"] = dt.Rows[0]["varComplessivoString"];
                            
                        ds18.RischioFinanziarioVarTotali.Rows.Add(dr);
                    }
                }
    #endregion

                dsr.DatiSezione = ds18;
                if (ds18.RischioPatrimonioFinanziario.Rows.Count > ds18.RischioFinanziarioVarTotali.Rows.Count)
                    dsr.Esito = ds18.RischioPatrimonioFinanziario.Rows.Count;
                else
                    dsr.Esito = ds18.RischioFinanziarioVarTotali.Rows.Count;
            }
            else
            {
                dsr.DatiSezione = ds18;
                dsr.Esito = 0;
            }

            return dsr;
        }
        catch (Exception ex)
        {
            logger.Error(ex);
            throw ex;
        }
    }

    public bool onlyBF
    {
        get
        {
            return _onlyBF;
        }
        set
        {
            _onlyBF = value;
        }
    }
}