using System;
using System.Data;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Text;

public partial class richiediDocumenti : System.Web.UI.Page
{
    protected void page_load(object sender, EventArgs e)
    {
        lblMessaggioDataRilascioReport.Text = ottieniMessaggioDataRilascioReport();
    }

    protected void btnSi_Click(object sender, EventArgs e)
    {
        if (insertRichiesta())
        {
            lblMessaggio.Text = "La richiesta è stata inoltrata con successo";
            btnSi.Enabled = false;
        }
        else
        {
            lblMessaggio.Text = "La richiesta non è stata inoltrata a causa di un problema tecnico; contattare l'Help Desk";           
        }
    }

    public bool insertRichiesta()
    {
        try
        {
            List<Parametro> listaParametri = new List<Parametro>();
            Parametro idReport = new Parametro();
            idReport.ParameterName = "identificativo";
            idReport.DbType = DbType.Int32;
            idReport.Value = Request.QueryString["identificativo"].ToString();
            listaParametri.Add(idReport);

            Parametro idCliente = new Parametro();
            idCliente.ParameterName = "Rete";
            idCliente.DbType = DbType.String;
            idCliente.Value = Request.QueryString["rete"].ToString();
            listaParametri.Add(idCliente);

            Parametro utente = new Parametro();
            utente.ParameterName = "cod_fiscale";
            utente.DbType = DbType.String;
            utente.Value = Request.QueryString["codfis"].ToString();
            listaParametri.Add(utente);

            Parametro img = new Parametro();
            img.ParameterName = "cod_agente";
            img.DbType = DbType.String;
            img.Value = Request.QueryString["pb"].ToString();
            listaParametri.Add(img);

           DataAccess.ExecuteNonQueryStoredProcedure(DBProvider.SqlServerStampeC6, "InserisciRichiestaStorico", listaParametri);


           listaParametri = new List<Parametro>();
           
           idReport = new Parametro();
           idReport.ParameterName = "identificativo";
           idReport.DbType = DbType.Int32;
           idReport.Value = Request.QueryString["identificativo"].ToString(); 
           listaParametri.Add(idReport);

           DataAccess.ExecuteNonQueryStoredProcedure(DBProvider.SqlServer, "HIST_inseriscirichiestastorico", listaParametri);

            return true;
        }
        catch (Exception e)
        {
            return false;
        }
    }

    private string ottieniMessaggioDataRilascioReport()
    {
        StringBuilder sb = new StringBuilder();
        DateTime soglia = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 9, 45, 0);
        sb.Append("Il report sarà disponibile dalle 14:00 ");
        if (DateTime.Now.Ticks <= soglia.Ticks)
        {
            sb.Append("di oggi.");
        }
        else
        {
            sb.Append("di domani.");
        }
        return sb.ToString();
    }

    protected void btnNo_Click(object sender, EventArgs e)
    {
        StringBuilder sb = new StringBuilder();
        sb.Append("archivioDocumenti.aspx?");
        sb.Append(string.Format("token={0}", Request.QueryString["token"]));
        sb.Append(string.Format("&codPB={0}", Request.QueryString["pb"]));
        sb.Append(string.Format("&codCliente={0}", Request.QueryString["codfis"]));
        sb.Append(string.Format("&tipoRete={0}", Request.QueryString["rete"]));
        sb.Append(string.Format("&checkPrivacy={0}", Request.QueryString["checkPrivacy"]));
        sb.Append(string.Format("&pathNav={0}", Request.QueryString["pathNav"]));
        sb.Append(string.Format("&ambiente={0}", Request.QueryString["ambiente"]));
        Response.Redirect(sb.ToString());
    }
}