Esempio n. 1
0
        private static string GetXmlRichiesta(prevent.verifica.Parametri parametri)
        {
            using (MemoryStream stream = new MemoryStream())
            {
                XmlSerializerNamespaces ns = new XmlSerializerNamespaces();
                ns.Add("", "");

                XmlSerializer xml = new XmlSerializer(typeof(prevent.verifica.Parametri));
                xml.Serialize(stream, parametri, ns);

                string xmlstr = Encoding.UTF8.GetString(stream.ToArray());
                return(xmlstr);
            }
        }
Esempio n. 2
0
        public static void Verifica(prevent.verifica.Parametri parametri, Guid richiesta, PreventWebServices.RichiestaVerifica.ObjCallback funzione)
        {
            RichiestaVerifica item = new RichiestaVerifica();

            item.IdRichiesta        = richiesta;
            item.Parametri          = parametri;
            item.XmlRichiesta       = GetXmlRichiesta(parametri);
            item.FunzioneDaChiamare = funzione;

            lock (SyncRoot)
            {
                for (int i = Elenco.Count - 1; i >= 0; i--)
                {
                    RichiestaVerifica richiestaVerifica = Elenco[i];

                    TimeSpan tempo = DateTime.Now - richiestaVerifica.DataRisposta;
                    if (tempo.TotalSeconds < 30)
                    {
                        if (richiestaVerifica.XmlRichiesta == item.XmlRichiesta)
                        {
                            item.CodiceErrore = richiestaVerifica.CodiceErrore;
                            item.XmlRisposta  = richiestaVerifica.XmlRisposta;
                            item.DataRisposta = richiestaVerifica.DataRisposta;
                            item.Disponibile  = richiestaVerifica.Disponibile;
                        }
                    }
                    else
                    {
                        Elenco.Remove(richiestaVerifica);
                    }
                }
            }

            if (!string.IsNullOrEmpty(item.XmlRisposta))
            {
                // ok trovato nella cache
                item.FunzioneDaChiamare(item);
            }
            else
            {
                // attivo un thread che effettua la chiamata
                ParameterizedThreadStart newThreadStart = new ParameterizedThreadStart(TaskAsincrono);
                Thread nuovo = new Thread(newThreadStart);
                nuovo.Start(item);
            }
        }
        private void timerTick_Tick(object sender, EventArgs e)
        {
            VerificaDisponibilita.GeneraEventi();

            foreach (Prenotazione item in this.m_CollectionMySet)
            {
                if (item.Disponibilita == EnumDisponibilita.DaControllare)
                {
                    if (item.OriginataPrevent && item.StartDate == item.PreventStartDate)
                    {
                        item.Disponibilita = EnumDisponibilita.Disponibile;
                        item.Description   = item.Ingresso.Descrizione;
                        item.SetLabel(m_PaginaAttiva);
                    }
                    else
                    {
                        item.IdRichiesta   = Guid.NewGuid();
                        item.Disponibilita = EnumDisponibilita.ControlloInCorso;

                        prevent.verifica.Parametri parametri = new prevent.verifica.Parametri();
                        parametri.Denominazione = "VERIFICA";
                        parametri.PaxTotali     = item.NumeroPersone.ToString();
                        parametri.TipoGS        = GestoreCalendario.TipoGS;
                        if (!string.IsNullOrEmpty(m_PrenotazioneComplessiva.PrenotazionePrevent))
                        {
                            parametri.NumeroPrenotazione = m_PrenotazioneComplessiva.PrenotazionePrevent;
                        }

                        parametri.RigaPercorsoVisita    = new prevent.verifica.ParametriRigaPercorsoVisita[1];
                        parametri.RigaPercorsoVisita[0] = new prevent.verifica.ParametriRigaPercorsoVisita();

                        parametri.RigaPercorsoVisita[0].DataVisita = item.StartDate.Date;
                        parametri.RigaPercorsoVisita[0].OraVisita  = String.Format("{0:HH}:{1:mm}:{2:ss}.{3:ffffzzz}", item.StartDate, item.StartDate, item.StartDate, item.StartDate);
                        parametri.RigaPercorsoVisita[0].PaxVisita  = item.NumeroPersone.ToString();
                        parametri.RigaPercorsoVisita[0].IdMostra   = item.Ingresso.CodicePrevent.ToString();

                        VerificaDisponibilita.Verifica(parametri, item.IdRichiesta, Elabora);
                    }
                }
            }

            VerificaStato();
        }