using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

using fbblEntiPubblici;
using fbblMessaggi;
using fbblTipi;
using fbblCostanti;

// Librerie per l'utilizzo dei file e per l'impiego della tecnica di serializzazione

using System.IO; // Per lavorare sui file
using System.Runtime;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters;
using System.Runtime.Serialization.Formatters.Binary;
using System.Runtime.Serialization.Formatters.Soap;

namespace fdprEntiPubblici
{
    public partial class frmVisualizzaDatiAmbasciata : Form
    {
        private Liste OggettoListe = new Liste();

        public frmVisualizzaDatiAmbasciata()
        {
            InitializeComponent();
        }



//************************ PROCEDURE LOCALI DI PROGETTO *******************************//

        private void frmVisualizzaDatiAmbasciata_ElencoDati()
        {
            //BinaryFormatter FormattazioneBinaria = new BinaryFormatter();
            SoapFormatter FormattazioneBinaria = new SoapFormatter();

            if (File.Exists("c:\\temp\\Ambasciata.soap"))
            {
                
                using
                     (
                             FileStream FileSuDisco=new FileStream
                                                                 (
                                                                    "c:\\temp\\Ambasciata.soap",
                                                                    FileMode.Open,
                                                                    FileAccess.Read
                                                                 )
                     )
                {

                    try
                    {
                        FileSuDisco.Seek(0,SeekOrigin.Begin);

                        //this.OggettoListe.ListaDiClassiAmbasciata=(List<Ambasciata>)FormattazioneBinaria.Deserialize(FileSuDisco);

                        Ambasciata[] EmbassyVector = (Ambasciata[])FormattazioneBinaria.Deserialize(FileSuDisco);

                        this.OggettoListe.ListaDiClassiAmbasciata = new List<Ambasciata>
                                                                                (
                                                                                   (IEnumerable<Ambasciata>)EmbassyVector
                                                                                );

                        grdDatiAmbasciata.DataSource = this.OggettoListe.ListaDiClassiAmbasciata;

                        grdDatiAmbasciata.Columns["TipoEnte"].DisplayIndex = 0;
                        grdDatiAmbasciata.Columns["NomeEnte"].DisplayIndex = 1;
                        grdDatiAmbasciata.Columns["Nazione"].DisplayIndex = 2;


                    }
                    catch (SerializationException e)
                    {
                        //MessageBox.Show(e.Message);
                        StrumentiMessaggi.Messaggio(e.Message, "Errore");
                    }
                    finally
                    {
                        FileSuDisco.Close();
                    }

                }

            }
            else
            {
                //MessageBox.Show("Non esiste il file da deserializzare!");
                StrumentiMessaggi.Messaggio("Non esiste il file da deserializzare!","Errore");
            }
        }


//************************ PROCEDURE DI RISPOSTA AGLI EVENTI **************************//

        private void frmVisualizzaDatiAmbasciata_Shown(object sender, EventArgs e)
        {
            frmVisualizzaDatiAmbasciata_ElencoDati();
        }
    }
}
