Esempio n. 1
0
 private static void CheckValues(RichiestaDiAccesso rda)
 {
     // Controllo su differimento
     if (rda.Esito != null && rda.Esito.TipoEsito != null && rda.Esito.TipoEsito == EsitoType.Differimento)
     {
         rda.Esito = null;
     }
     if (rda.EsitoRiesame != null && rda.EsitoRiesame.TipoEsito != null && rda.EsitoRiesame.TipoEsito == EsitoType.Differimento)
     {
         rda.EsitoRiesame = null;
     }
 }
Esempio n. 2
0
        private static void SetStatoRichiesta(RichiestaDiAccesso rda, String typology)
        {
            // Implementazione attuale:
            // La richiesta è CHIUSA se è definito un esito e non è definita la data notifica del blocco esito successivo
            // La richiesta è SOSPESA se sono presenti controinteressati ma non è stato ancora definito un esito
            // La richiesta è IN CORSO negli altri casi

            rda.StatoRichiesta = StatoType.InCorso;

            if (rda.Esito == null)
            {
                if (rda.PresenzaControinteressati)
                {
                    rda.StatoRichiesta = StatoType.Sospesa;
                }
            }
            else
            {
                if (rda.EsitoRiesame == null && typology == "Accesso Generalizzato e Civico")
                {
                    if (!String.IsNullOrEmpty(rda.DataNotificaRiesame))
                    {
                        rda.StatoRichiesta = StatoType.Chiusa;
                    }
                }
                else
                {
                    if (rda.EsitoRicorso == null)
                    {
                        if (!String.IsNullOrEmpty(rda.DataNotificaRicorso))
                        {
                            rda.StatoRichiesta = StatoType.Chiusa;
                        }
                    }
                    else
                    {
                        rda.StatoRichiesta = StatoType.Chiusa;
                    }
                }
            }
        }
Esempio n. 3
0
        private static void SetValoreCampoProfilato(RichiestaDiAccesso rda, String name, String value)
        {
            switch (name.ToUpper().Trim())
            {
            case "DATA DI ARRIVO DELLA DOMANDA":
                rda.DataCreazione = FormatDate(value);
                break;

            case "PRESENZA CONTRO INTERESSATI":
            case "PRESENZA CONTROINTERESSATI":
                if (value.ToUpper() == "SI")
                {
                    rda.PresenzaControinteressati = true;
                }
                else
                {
                    rda.PresenzaControinteressati = false;
                }
                break;

            case "ESITO":
                if (!String.IsNullOrEmpty(value))
                {
                    if (rda.Esito == null)
                    {
                        rda.Esito = new Esito();
                    }
                    SetEsito(rda.Esito, value);
                }
                else
                {
                    rda.Esito = null;
                }
                break;

            case "DATA RISPOSTA":
                if (!String.IsNullOrEmpty(value))
                {
                    if (rda.Esito == null)
                    {
                        rda.Esito = new Esito();
                    }
                    rda.Esito.DataEsito = FormatDate(value);
                }
                break;

            case "MOTIVI DEL RIFIUTO PARZIALE, DEL RIFIUTO TOTALE O DEL DIFFERIMENTO":
                if (!string.IsNullOrEmpty(value))
                {
                    if (rda.Esito == null)
                    {
                        rda.Esito = new Esito();
                    }

                    SetMotivoRifiuto(rda.Esito, value);
                }
                break;

            case "ALTRO - MOTIVI DEL RIFIUTO PARZIALE, DEL RIFIUTO TOTALE O DEL DIFFERIMENTO":
                if (!string.IsNullOrEmpty(value))
                {
                    if (rda.Esito == null)
                    {
                        rda.Esito = new Esito();
                    }
                    rda.Esito.SintesiMotivazione = value;
                }
                break;

            case "RIESAME - ESITO":
                if (!String.IsNullOrEmpty(value) && value.ToUpper() != "DIFFERIMENTO")
                {
                    if (rda.EsitoRiesame == null)
                    {
                        rda.EsitoRiesame = new Esito();
                    }
                    SetEsito(rda.EsitoRiesame, value);
                }
                else
                {
                    rda.EsitoRiesame = null;
                }
                break;

            case "RIESAME - MOTIVI DEL RIFIUTO PARZIALE, DEL RIFIUTO TOTALE O DEL DIFFERIMENTO":
                if (!string.IsNullOrEmpty(value))
                {
                    if (rda.EsitoRiesame == null)
                    {
                        rda.EsitoRiesame = new Esito();
                    }

                    SetMotivoRifiuto(rda.EsitoRiesame, value);
                }
                break;

            case "RIESAME - DATA RISPOSTA":
                if (!String.IsNullOrEmpty(value))
                {
                    if (rda.EsitoRiesame == null)
                    {
                        rda.EsitoRiesame = new Esito();
                    }

                    rda.EsitoRiesame.DataEsito = FormatDate(value);
                }
                break;

            case "RICORSO - ESITO":
                if (!String.IsNullOrEmpty(value) && value.ToUpper() != "DIFFERIMENTO")
                {
                    if (rda.EsitoRicorso == null)
                    {
                        rda.EsitoRicorso = new Esito();
                    }
                    SetEsito(rda.EsitoRicorso, value);
                }
                else
                {
                    rda.EsitoRicorso = null;
                }
                break;

            case "RIESAME - DATA DI PRESENTAZIONE DELLA DOMANDA":
                if (!String.IsNullOrEmpty(value))
                {
                    rda.DataNotificaRiesame = value;
                }
                break;

            case "RICORSO – DATA DI NOTIFICAZIONE DEL RICORSO GIURISDIZIONALE DELL'AMMINISTRAZIONE":
                if (!String.IsNullOrEmpty(value))
                {
                    rda.DataNotificaRicorso = value;
                }
                break;

            default:
                break;
            }
        }
Esempio n. 4
0
        private static Byte[] RegistroAccessiGetXML(DataSet dataSet, String typology)
        {
            try
            {
                logger.Debug("BEGIN");

                logger.Debug("Costruzione XML secondo standard FOIA-EXT");

                List <RichiestaDiAccesso> list = new List <RichiestaDiAccesso>();

                String folderId = String.Empty;

                foreach (DataRow dataRow in dataSet.Tables[0].Rows)
                {
                    if (!String.IsNullOrEmpty(dataRow["ID_PROJECT"].ToString()))
                    {
                        if (String.IsNullOrEmpty(folderId) || !dataRow["ID_PROJECT"].ToString().Equals(folderId))
                        {
                            // E' una nuova riga
                            folderId = dataRow["ID_PROJECT"].ToString();

                            RichiestaDiAccesso rda = new RichiestaDiAccesso();
                            rda.StatoRichiesta = dataRow["STATO_FASC"].ToString() == "C" ? StatoType.Chiusa : StatoType.InCorso;
                            rda.Oggetto        = new Oggetto()
                            {
                                Sintesi = dataRow["DESCRIZIONE"].ToString()
                            };

                            SetValoreCampoProfilato(rda, dataRow["NOME_CAMPO"].ToString(), dataRow["VALORE_CAMPO"].ToString());

                            list.Add(rda);
                        }
                        else
                        {
                            // E' una riga esistente
                            RichiestaDiAccesso rda = list.Last();
                            if (rda != null)
                            {
                                SetValoreCampoProfilato(rda, dataRow["NOME_CAMPO"].ToString(), dataRow["VALORE_CAMPO"].ToString());
                            }
                        }
                    }
                }

                logger.Debug("Analisi richieste di accesso...");

                foreach (RichiestaDiAccesso rda in list)
                {
                    SetStatoRichiesta(rda, typology);
                    CheckValues(rda);
                }

                logger.Debug("Serializzazione...");

                Byte[] serializedXML = GetSerializedXML(list);

                logger.Debug("END");

                return(serializedXML);
            }
            catch (Exception ex)
            {
                logger.DebugFormat("Errore nella produzione dell'XML FOIA.\r\n{0}\r\n{1}", ex.Message, ex.StackTrace);
                return(null);
            }
        }