public HentKvitteringAsync ( |
||
kvitteringsforespørsel | ||
Результат | Task |
private static async void HentKvitteringer(SikkerDigitalPostKlient sikkerDigitalPostKlient) { Log.Debug(""); Log.Debug(@" > Starter å hente kvitteringer ..."); Thread.Sleep(3000); while (true) { var kvitteringsForespørsel = new Kvitteringsforespørsel(Prioritet.Prioritert, MpcId); Log.Debug($" > Henter kvittering på kø '{kvitteringsForespørsel.Mpc}'..."); var kvittering = await sikkerDigitalPostKlient.HentKvitteringAsync(kvitteringsForespørsel).ConfigureAwait(false); if (kvittering is TomKøKvittering) { Console.WriteLine($" - Kø '{kvitteringsForespørsel.Mpc}' er tom. Stopper å hente meldinger. "); break; } if (kvittering is TransportFeiletKvittering) { var feil = ((TransportFeiletKvittering) kvittering).Beskrivelse; WriteToConsoleWithColor( "En feil skjedde under transport. Forespørsel for kvittering ble ikke godtatt av Meldingsformidler: " + feil, true); break; } if (kvittering is Leveringskvittering) { WriteToConsoleWithColor(" - En leveringskvittering ble hentet!"); } if (kvittering is Åpningskvittering) { WriteToConsoleWithColor(" - Har du sett. Noen har åpnet et brev. Moro."); } if (kvittering is Returpostkvittering) WriteToConsoleWithColor(" - Du har fått en returpostkvittering for fysisk post."); if (kvittering is Mottakskvittering) WriteToConsoleWithColor(" - Kvittering på sending av fysisk post mottatt."); if (kvittering is Feilmelding) { var feil = (Feilmelding) kvittering; WriteToConsoleWithColor(" - En feilmelding ble hentet :" + feil.Detaljer, true); } Console.WriteLine(@" - Bekreftelse på mottatt kvittering sendes ..."); sikkerDigitalPostKlient.Bekreft((Forretningskvittering) kvittering); Console.WriteLine(@" - Kvittering sendt."); } }
private async Task<int> HentKvitteringOgBekreft(SikkerDigitalPostKlient sdpKlient, string testBeskrivelse, string mpcId, Forsendelse forsendelse) { var hentKvitteringPåNytt = true; var prøvdPåNytt = 0; while (hentKvitteringPåNytt && (prøvdPåNytt++ <= _hentKvitteringerMaksAntallGanger)) { Thread.Sleep(1000); var kvitteringsforespørsel = new Kvitteringsforespørsel(Prioritet.Prioritert, mpcId); var kvittering = await sdpKlient.HentKvitteringAsync(kvitteringsforespørsel); if (kvittering == null) { continue; } sdpKlient.Bekreft((Forretningskvittering)kvittering); hentKvitteringPåNytt = false; var konversasjonsId = Guid.Empty; if (kvittering is Feilmelding) { var feilmelding = (Feilmelding)kvittering; konversasjonsId = feilmelding.KonversasjonsId; Assert.Fail("Test '{0}' feilet. Feilmelding fra Meldingsformidler: {1}", testBeskrivelse, feilmelding.Detaljer); } if (kvittering is Leveringskvittering) { var leveringskvittering = (Leveringskvittering)kvittering; konversasjonsId = leveringskvittering.KonversasjonsId; } if (konversasjonsId.ToString() != forsendelse.KonversasjonsId.ToString()) { throw new FieldAccessException( string.Format( "Fikk ikke til å hente kvittering for test '{0}' -- det ble hentet feil kvittering eller ingen kvittering. Var du for rask å hente, " + "eller har noe skjedd galt med hvilken kø du henter fra?", testBeskrivelse)); } } return prøvdPåNytt; }