Exemple #1
0
        public static prevent.verifica.Out MakeDelete(string codice)
        {
            UltimoErrore = null;

            PreventWebServices.WebReferencePrevent.WSPreventService wsp = new PreventWebServices.WebReferencePrevent.WSPreventService();
            string risposta = string.Empty;

            try
            {
                string richiesta = string.Format(@"<?xml version='1.0' encoding='utf-8'?><Parametri CodiceTransWinTicket=""{0}""></Parametri>", codice);

                Console.WriteLine("WS_URL: " + wsp.Url);

                risposta = wsp.delete("WinTicket", WsConfig.Username, WsConfig.Password, richiesta);
            }
            catch (Exception ex)
            {
                UltimoErrore = new prevent.verifica.Out();
                UltimoErrore.DescrizioneErrore = string.Format("Risposta non corretta dal servizio remoto: {0}: {1}", ex.Source, ex.Message);
                UltimoErrore.ReturnCode        = "997";

                risposta = string.Empty;
            }

            if (!string.IsNullOrEmpty(risposta))
            {
                Console.WriteLine(risposta);

                try
                {
                    MemoryStream         stream = new MemoryStream(Encoding.UTF8.GetBytes(risposta));
                    XmlSerializer        xml    = new XmlSerializer(typeof(prevent.verifica.Out));
                    prevent.verifica.Out dati   = (prevent.verifica.Out)xml.Deserialize(stream);

                    if (dati.ReturnCode == "00" || dati.ReturnCode == "51" || dati.ReturnCode == "52")
                    {
                        return(dati);
                    }
                    else
                    {
                        UltimoErrore = dati;
                    }
                }
                catch (Exception ex)
                {
                    UltimoErrore = new prevent.verifica.Out();
                    UltimoErrore.DescrizioneErrore = String.Format("Risposta non corretta dal servizio remoto: {0} ({1})", (risposta.Length < 200 ? risposta : string.Empty), ex.Message);
                    UltimoErrore.ReturnCode        = "996";
                }
            }

            return(null);
        }
Exemple #2
0
        private static void TaskAsincrono(object data)
        {
            RichiestaVerifica item = (RichiestaVerifica)data;

            try
            {
                PreventWebServices.WebReferencePrevent.WSPreventService wsp = new PreventWebServices.WebReferencePrevent.WSPreventService();
                item.XmlRisposta = wsp.book("WinTicket", WsConfig.Username, WsConfig.Password, "V", item.XmlRichiesta);
                //item.XmlRisposta = wsp.book("WinTicket", "Luca", "3292285430", "V", item.XmlRichiesta);
                item.DataRisposta = DateTime.Now;

                Console.WriteLine(item.XmlRichiesta);
                Console.WriteLine(item.XmlRisposta);

                MemoryStream         stream   = new MemoryStream(Encoding.UTF8.GetBytes(item.XmlRisposta));
                XmlSerializer        xml      = new XmlSerializer(typeof(prevent.verifica.Out));
                prevent.verifica.Out risposta = (prevent.verifica.Out)xml.Deserialize(stream);

                item.CodiceErrore = risposta.DescrizioneErrore;
                if (risposta.ReturnCode == "00")
                {
                    item.Disponibile = true;
                }
                else
                {
                    item.Disponibile = false;
                }
            }
            catch (Exception ex)
            {
                item.CodiceErrore = ex.Message;
                item.XmlRisposta  = string.Empty;
                item.DataRisposta = DateTime.Now;
                item.Disponibile  = false;
            }

            lock (SyncRoot)
            {
                Elenco.Add(item);
            }
        }
        private static void TaskAsincrono(object data)
        {
            RichiestaCalendario item = (RichiestaCalendario)data;

            try
            {
                Console.WriteLine("RICHIESTA: INIZIO: " + item.DataInizio);
                Console.WriteLine("RICHIESTA: FINE: " + item.DataFine);

                string richiesta = GetXmlRichiesta(item.ParametriXml);
                Console.WriteLine(richiesta);

                DateTime start = DateTime.Now;
                PreventWebServices.WebReferencePrevent.WSPreventService wsp = new PreventWebServices.WebReferencePrevent.WSPreventService();
                string risposta = wsp.calendar("WinTicket", WsConfig.Username, WsConfig.Password, richiesta);

                DateTime end = DateTime.Now;
                Console.WriteLine("START: " + start.ToLongTimeString());
                Console.WriteLine("END: " + end.ToLongTimeString());
                Console.WriteLine("DURATA: " + (end - start).TotalMilliseconds);

                //Console.WriteLine(risposta);

                MemoryStream         stream      = new MemoryStream(Encoding.UTF8.GetBytes(risposta));
                XmlSerializer        xml         = new XmlSerializer(typeof(prevent.calendar.Out));
                prevent.calendar.Out outrisposta = (prevent.calendar.Out)xml.Deserialize(stream);

                lock (SyncRoot)
                {
                    //for (int i = 0; i < outrisposta.SitoCalendario.Length; i++)
                    //{
                    //    for (int j = 0; j < outrisposta.SitoCalendario[i].Giornata.Length; j++)
                    //    {
                    //        for (int p = 0; p < outrisposta.SitoCalendario[i].Giornata[j].Periodo.Length; p++)
                    //        {
                    //            if (outrisposta.SitoCalendario[i].Giornata[j].Data.Day == 15)
                    //                Console.WriteLine("Disp: {0:d} {1}: {2}",
                    //                    outrisposta.SitoCalendario[i].Giornata[j].Data,
                    //                    outrisposta.SitoCalendario[i].Giornata[j].Periodo[p].Ora.Replace("00.0000+01:00", ""),
                    //                    outrisposta.SitoCalendario[i].Giornata[j].Periodo[p].Max);
                    //        }
                    //    }
                    //}

                    foreach (prevent.calendar.OutSitoCalendario outSitoCalendario in outrisposta.SitoCalendario)
                    {
                        int sito = int.Parse(outSitoCalendario.IdSito);
                        if (outSitoCalendario.Giornata == null)
                        {
                            continue;
                        }

                        foreach (prevent.calendar.OutSitoCalendarioGiornata outSitoCalendarioGiornata in outSitoCalendario.Giornata)
                        {
                            if (outSitoCalendarioGiornata.Periodo == null)
                            {
                                continue;
                            }

                            RisultatoCalendario infog = new RisultatoCalendario();
                            infog.Ingresso            = sito;
                            infog.InfoGiornata        = outSitoCalendarioGiornata.Note;
                            infog.PostiDisponibili    = 0;
                            infog.MaxPostiDisponibili = 0;
                            infog.DataOra             = outSitoCalendarioGiornata.Data;

                            AggiornaEdInserisci(infog);

                            foreach (prevent.calendar.OutSitoCalendarioGiornataPeriodo outSitoCalendarioGiornataPeriodo in outSitoCalendarioGiornata.Periodo)
                            {
                                RisultatoCalendario risultato = new RisultatoCalendario();
                                risultato.Ingresso            = sito;
                                risultato.InfoGiornata        = outSitoCalendarioGiornata.Note;
                                risultato.PostiDisponibili    = int.Parse(outSitoCalendarioGiornataPeriodo.Disponibili);
                                risultato.MaxPostiDisponibili = int.Parse(outSitoCalendarioGiornataPeriodo.Max);
                                risultato.DataOra             = outSitoCalendarioGiornata.Data;

                                string ora    = outSitoCalendarioGiornataPeriodo.Ora.Substring(0, 2);
                                string minuti = outSitoCalendarioGiornataPeriodo.Ora.Substring(3, 2);
                                risultato.DataOra = risultato.DataOra.AddMinutes(int.Parse(minuti));
                                risultato.DataOra = risultato.DataOra.AddHours(int.Parse(ora));

                                AggiornaEdInserisci(risultato);
                            }
                        }
                    }

                    ElencoRichiesteAttive.Remove(item);
                    ElencoRichiesteEvase.Add(item);

                    NewData = true;
                }
            }
            catch (Exception ex)
            {
                // eseguo di nuovo se ho avuto dei problemi...
                //item.NuovaRichiesta = true;

                Console.Write(ex.Message);

                lock (SyncRoot)
                {
                    ErroriWeb.Add(ex);

                    item.TimeToLive++;
                    ElencoRichiesteAttive.Remove(item);
                    if (item.TimeToLive < 4)
                    {
                        ElencoNuoveRichieste.Add(item);
                    }
                    else
                    {
                        // log errore Prevent
                    }
                }
            }
        }
Exemple #4
0
        public static prevent.get.Out MakeGet()
        {
            UltimoErrore = null;

            PreventWebServices.WebReferencePrevent.WSPreventService wsp = new PreventWebServices.WebReferencePrevent.WSPreventService();
            string risposta = string.Empty;

            try
            {
                Console.WriteLine("WS_URL: " + wsp.Url);
                risposta = wsp.book("WinTicket", WsConfig.Username, WsConfig.Password, "G", string.Empty);
            }
            catch (Exception ex)
            {
                UltimoErrore = new prevent.verifica.Out();
                UltimoErrore.DescrizioneErrore = string.Format("Risposta non corretta dal servizio remoto: {0}: {1}", ex.Source, ex.Message);
                UltimoErrore.ReturnCode        = "998";

                risposta = string.Empty;
            }

            if (!string.IsNullOrEmpty(risposta))
            {
                Console.WriteLine(risposta);
                risposta = risposta.Replace("+01:00", string.Empty);
                risposta = risposta.Replace("+02:00", string.Empty);

                try
                {
                    if (!risposta.Contains("ReturnCode"))
                    {
                        MemoryStream    stream = new MemoryStream(Encoding.UTF8.GetBytes(risposta));
                        XmlSerializer   xml    = new XmlSerializer(typeof(prevent.get.Out));
                        prevent.get.Out dati   = (prevent.get.Out)xml.Deserialize(stream);

                        dati.MostraTipo = "0";

                        var mostra = new int[] { 277, 278, 279 };

                        foreach (var num in mostra)
                        {
                            if (risposta.Contains(string.Format("<IdTipoBiglietto>{0}</IdTipoBiglietto>", num)))
                            {
                                dati.MostraTipo = "1";
                            }
                        }

                        return(dati);
                    }
                    else
                    {
                        // errore
                        MemoryStream  stream = new MemoryStream(Encoding.UTF8.GetBytes(risposta));
                        XmlSerializer xml    = new XmlSerializer(typeof(prevent.verifica.Out));
                        UltimoErrore = (prevent.verifica.Out)xml.Deserialize(stream);
                    }
                }
                catch (Exception ex)
                {
                    UltimoErrore = new prevent.verifica.Out();
                    UltimoErrore.DescrizioneErrore = String.Format("Risposta non corretta dal servizio remoto: {0} ({1})", (risposta.Length < 200 ? risposta : string.Empty), ex.Message);
                    UltimoErrore.ReturnCode        = "999";
                }
            }

            return(null);
        }
        public static bool Prenota(prevent.prenotazione.Parametri parametri, prevent.get.Out vecchiaprenotazione)
        {
            UltimoErrore = null;
            PreventWebServices.WebReferencePrevent.WSPreventService wsp = new PreventWebServices.WebReferencePrevent.WSPreventService();
            string richiesta = GetXmlRichiesta(parametri);

            if (vecchiaprenotazione != null)
            {
                richiesta = GetXmlRichiesta(CreaUpdate(parametri, vecchiaprenotazione));
            }
            string risposta = string.Empty;

            try
            {
                if (vecchiaprenotazione != null)
                {
                    risposta = wsp.book("WinTicket", WsConfig.Username, WsConfig.Password, "U", richiesta);
                }
                else
                {
                    risposta = wsp.book("WinTicket", WsConfig.Username, WsConfig.Password, "P", richiesta);
                }
            }
            catch (Exception)
            {
                risposta = string.Empty;
            }

            Console.WriteLine(richiesta);
            Console.WriteLine(risposta);

            parametri.CodiceTransWinTicket = string.Empty;

            if (risposta.Contains(@"ReturnCode=""00"""))
            {
                if (vecchiaprenotazione != null)
                {
                    parametri.CodiceTransWinTicket = vecchiaprenotazione.NumeroPrenotazione;
                }
                else
                {
                    int len1 = @"<NumeroPrenotazione>".Length;
                    int pos1 = risposta.IndexOf(@"<NumeroPrenotazione>");
                    int pos2 = risposta.IndexOf(@"</NumeroPrenotazione>");

                    parametri.CodiceTransWinTicket = risposta.Substring(pos1 + len1, pos2 - pos1 - len1);

                    Console.WriteLine(String.Format("PRENOTAZIONE:[{0}]", parametri.CodiceTransWinTicket));
                }

                return(true);
            }
            else
            {
                if (!string.IsNullOrEmpty(risposta))
                {
                    // errore
                    MemoryStream  stream = new MemoryStream(Encoding.UTF8.GetBytes(risposta));
                    XmlSerializer xml    = new XmlSerializer(typeof(prevent.verifica.Out));
                    UltimoErrore = (prevent.verifica.Out)xml.Deserialize(stream);
                }

                return(false);
            }
        }