protected bool CheckStatusLol(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 NPCELOLEntities()) { ctx.Database.Connection.ConnectionString = ambiente.LolConnectionString; var richiesta = ctx.LOL.Where(r => r.IdRichiesta == new Guid(idRichiesta)).FirstOrDefault(); if (richiesta != null) { if (richiesta.IdStatoLavorazione == status) { result = true; break; } else { Thread.Sleep(retryInterval); } } } } return(result); }
public void Invio_PreConferma_Con_AutoConferma_Archiviazione_Storica_3_Anni() { string idRichiesta = RecuperaIdRichiesta(); Assert.IsNotNull(idRichiesta); var invioLol = GetLolInvio(idRichiesta, "docx", "Docx_5_Pagine.docx"); // Customize Invio invioLol.Opzioni.ArchiviazioneDocumenti = "STORICA"; invioLol.Opzioni.AnniArchiviazione = 3; invioLol.Opzioni.AnniArchiviazioneSpecified = true; invioLol.Opzioni.OpzionidiStampa.FronteRetro = "false"; InvioResult result = InviaLOL(idRichiesta, invioLol); var guidUtente = result.GuidUtente; Assert.AreEqual(result.CEResult.Type, "I"); Debug.WriteLine(result.IDRichiesta); Thread.Sleep(30000); var listRichieste = new List <Richiesta>(); listRichieste.Add(new Richiesta() { GuidUtente = guidUtente, IDRichiesta = idRichiesta }); PreConfermaRequest request = new PreConfermaRequest { Richieste = listRichieste.ToArray(), autoConferma = true }; var proxy = GetProxy <LOLServiceSoap>(ambiente.LolUri); var fake = new OperationContextScope((IContextChannel)proxy); var headers = GetHttpHeaders(ambiente); OperationContext.Current.OutgoingMessageProperties[HttpRequestMessageProperty.Name] = headers; var preConfermaResult = proxy.PreConferma(request); Assert.AreEqual(preConfermaResult.PreConfermaResult.CEResult.Type, "I"); CheckStatusLol(idRichiesta, "L", TimeSpan.FromMinutes(3), TimeSpan.FromSeconds(20)); using (var ctx = new NPCELOLEntities()) { ctx.Database.Connection.ConnectionString = ambiente.LolConnectionString; var ov = ctx.OggettoValorizzazione.Where(i => i.IdRichiesta.ToString() == idRichiesta && i.CodiceMateriale == "ARCHIVIAZ_P4OL").FirstOrDefault(); if (ov == null) { Assert.Fail("OggettoValorizzazione non esistente"); return; } Debug.WriteLine(GetPriceRequest(idRichiesta)); } }