示例#1
0
        protected bool CheckStatusPostaEvo(string idRichiesta, string status, TimeSpan timeout, TimeSpan retryInterval)
        {
            bool result = false;

            Stopwatch sw = new Stopwatch();

            sw.Start();
            while (sw.Elapsed <= timeout)
            {
                using (var ctx = new PostaEvoEntities())
                {
                    ctx.Database.Connection.ConnectionString = ambiente.PostaEvoConnectionString;
                    var richiesta = ctx.Richieste.Where(r => r.IdRichiesta == new Guid(idRichiesta)).FirstOrDefault();

                    if (richiesta != null)
                    {
                        if (richiesta.StatoCorrente == status)
                        {
                            result = true;
                            break;
                        }
                        else
                        {
                            Thread.Sleep(retryInterval);
                        }
                    }
                }
            }
            return(result);
        }
示例#2
0
        public void MOL1_Invio_Autoconfirm__EsitiSecondoCorso_Should_Persist_Charging()
        {
            var    guid    = System.Guid.NewGuid();
            string xmlBase = Envelopes.PostaEvoPil.Replace("%GUID%", string.Concat("", guid.ToString(), ""));

            var postaEvoRequest = Helper.GetPostaEvoSubmitFromXml(xmlBase);

            PostaEvoResponse postaEvoResponse;

            postaEvoRequest.AutoConferma = true;

            postaEvoRequest.Opzioni.OpzioniServizio.ModalitaPricing   = "ZONA";
            postaEvoRequest.Opzioni.OpzioniServizio.EsitiSecondoCorso = true;

            postaEvoRequest.Documenti[0].URI     = ambiente.PathDocument;
            postaEvoRequest.Documenti[0].HashMD5 = ambiente.HashMD5Document;

            postaEvoRequest.Documenti[1].URI     = ambiente.PathCov;
            postaEvoRequest.Documenti[1].HashMD5 = ambiente.HashMD5Cov;

            var result = Helper.PublishToBizTalk <PostaEvoSubmit, PostaEvoResponse>(postaEvoRequest, ambiente.UrlEntryPoint, out postaEvoResponse);

            Assert.AreEqual(TResultResType.I, result.ResType);

            Thread.Sleep(10000);

            // Check PostaEvo

            using (var postaEvoCtx = new PostaEvoEntities())
            {
                postaEvoCtx.Database.Connection.ConnectionString = ambiente.PostaEvoConnectionString;

                var opzioni = postaEvoCtx.Opzioni.Where(o => o.IdRichiesta == guid).FirstOrDefault();

                if (opzioni != null)
                {
                    Assert.IsTrue(opzioni.EsitiSecondoCorso.Value);
                }
            }

            Thread.Sleep(30000);
            // Check Charging
            using (var chargingCtx = new ChargingEntities())
            {
                chargingCtx.Database.Connection.ConnectionString = ambiente.ChargingConnectionString;
                var billableItem = chargingCtx.BillableItemsQueue.Where(bi => bi.ChiaveRichiesta == guid.ToString() && (bi.ProdottoDescription == "REND. 2 CORSO")).FirstOrDefault();

                Assert.IsNotNull(billableItem);
            }
        }
示例#3
0
        public void COL1_Autoconfirm_Archiviazione_Storica_3_Anni()
        {
            var guid = System.Guid.NewGuid();

            string xmlBase = Envelopes.PostaEvoPil.Replace("%GUID%", string.Concat("", guid.ToString(), ""));

            var postaEvoRequest = Helper.GetPostaEvoSubmitFromXml(xmlBase);

            postaEvoRequest.TipoProdotto = "COL1";

            postaEvoRequest.AutoConferma = true;

            postaEvoRequest.Opzioni.OpzioniServizio.ModalitaPricing      = "ZONA";
            postaEvoRequest.Opzioni.OpzioniServizio.AttestazioneConsegna = true;

            postaEvoRequest.Opzioni.OpzioniServizio.ArchiviazioneDocumenti     = "STORICA";
            postaEvoRequest.Opzioni.OpzioniServizio.AnniArchiviazione          = 3;
            postaEvoRequest.Opzioni.OpzioniServizio.AnniArchiviazioneSpecified = true;


            PostaEvoResponse postaEvoResponse;

            postaEvoRequest.Documenti[0].URI     = ambiente.PathDocument;
            postaEvoRequest.Documenti[0].HashMD5 = ambiente.HashMD5Document;

            postaEvoRequest.Documenti[1].URI     = ambiente.PathCov;
            postaEvoRequest.Documenti[1].HashMD5 = ambiente.HashMD5Cov;

            var result = Helper.PublishToBizTalk <PostaEvoSubmit, PostaEvoResponse>(postaEvoRequest, ambiente.UrlEntryPoint, out postaEvoResponse);

            Assert.AreEqual(TResultResType.I, result.ResType);

            using (var ctx = new PostaEvoEntities())
            {
                ctx.Database.Connection.ConnectionString = ambiente.PostaEvoConnectionString;

                var opzione = ctx.Opzioni.Where(o => o.IdRichiesta.ToString() == guid.ToString()).FirstOrDefault();

                if (opzione != null)
                {
                    Assert.AreEqual(opzione.TipoArchiviazione, 3);
                    Assert.AreEqual(opzione.AnniArchiviazione, 3);
                }
            }
        }
示例#4
0
        public void MOL1_Invio_EsitiSecondoCorso_Should_Persist_PostaEvo()
        {
            var    guid    = System.Guid.NewGuid();
            string xmlBase = Envelopes.PostaEvoPil.Replace("%GUID%", string.Concat("", guid.ToString(), ""));

            var postaEvoRequest = Helper.GetPostaEvoSubmitFromXml(xmlBase);

            PostaEvoResponse postaEvoResponse;

            postaEvoRequest.Opzioni.OpzioniServizio.ModalitaPricing   = "ZONA";
            postaEvoRequest.Opzioni.OpzioniServizio.EsitiSecondoCorso = true;

            postaEvoRequest.Documenti[0].URI     = ambiente.PathDocument;
            postaEvoRequest.Documenti[0].HashMD5 = ambiente.HashMD5Document;

            postaEvoRequest.Documenti[1].URI     = ambiente.PathCov;
            postaEvoRequest.Documenti[1].HashMD5 = ambiente.HashMD5Cov;

            var result = Helper.PublishToBizTalk <PostaEvoSubmit, PostaEvoResponse>(postaEvoRequest, ambiente.UrlEntryPoint, out postaEvoResponse);

            Assert.AreEqual(TResultResType.I, result.ResType);

            Thread.Sleep(10000);

            // Check PostaEvo
            using (var postaEvoCtx = new PostaEvoEntities())
            {
                postaEvoCtx.Database.Connection.ConnectionString = ambiente.PostaEvoConnectionString;

                var opzioni = postaEvoCtx.Opzioni.Where(o => o.IdRichiesta == guid).FirstOrDefault();

                if (opzioni != null)
                {
                    Assert.IsTrue(opzioni.EsitiSecondoCorso.Value);
                }
            }
        }