private static async Task <Kvittering> HentKvitteringOgBekreftAsync(SikkerDigitalPostKlient sdpKlient, string testBeskrivelse, Forsendelse forsendelse) { const int hentKvitteringMaksAntallGanger = 10; var hentKvitteringPåNytt = true; var prøvdPåNytt = 0; Kvittering kvittering = null; while (hentKvitteringPåNytt && (prøvdPåNytt++ <= hentKvitteringMaksAntallGanger)) { Thread.Sleep(500); var kvitteringsforespørsel = new Kvitteringsforespørsel(forsendelse.Prioritet, forsendelse.MpcId); kvittering = await sdpKlient.HentKvitteringAsync(kvitteringsforespørsel); if (kvittering is TomKøKvittering) { continue; } hentKvitteringPåNytt = false; await sdpKlient.BekreftAsync((Forretningskvittering)kvittering); var konversasjonsId = HentKonversasjonsIdFraKvittering(kvittering); if (konversasjonsId != forsendelse.KonversasjonsId) { throw new FieldAccessException( $"Fikk ikke til å hente kvittering for test '{testBeskrivelse}' -- det ble hentet feil kvittering eller ingen kvittering. Var du for rask å hente, " + "eller har noe skjedd galt med hvilken kø du henter fra?"); } } return(kvittering); }
private static Guid GetKonversasjonsIdFromKvittering(Kvittering kvittering) { var konversasjonsId = Guid.Empty; if (kvittering is Feilmelding) { var feilmelding = (Feilmelding)kvittering; konversasjonsId = feilmelding.KonversasjonsId; } else if (kvittering is Leveringskvittering) { var leveringskvittering = (Leveringskvittering)kvittering; konversasjonsId = leveringskvittering.KonversasjonsId; } else if (kvittering is Mottakskvittering) { var mottakskvittering = (Mottakskvittering)kvittering; konversasjonsId = mottakskvittering.KonversasjonsId; } return(konversasjonsId); }
private static async void HentKvitteringer(SikkerDigitalPostKlient _sikkerDigitalPostKlient) { Console.WriteLine(); Console.WriteLine(" > Starter å hente kvitteringer ..."); Thread.Sleep(3000); while (true) { var kvitteringsForespørsel = new Kvitteringsforespørsel(Prioritet.Prioritert, MpcId); Console.WriteLine(" > Henter kvittering på kø '{0}'...", kvitteringsForespørsel.Mpc); Kvittering kvittering = await _sikkerDigitalPostKlient.HentKvitteringAsync(kvitteringsForespørsel); if (kvittering == null) { Console.WriteLine(" - Kø '{0}' er tom. Stopper å hente meldinger. ", kvitteringsForespørsel.Mpc); 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, isError: 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."); } }
public void NyKlientOgSend() { var klientKonfig = new Klientkonfigurasjon(Miljø.FunksjoneltTestmiljø); Databehandler databehandler = null; //Som initiert tidligere Forsendelse forsendelse = null; //Som initiert tidligere var sdpKlient = new SikkerDigitalPostKlient(databehandler, klientKonfig); var transportkvittering = sdpKlient.Send(forsendelse); if (transportkvittering is TransportOkKvittering) { //Når alt går fint } else if (transportkvittering is TransportFeiletKvittering) { var beskrivelse = ((TransportFeiletKvittering)transportkvittering).Beskrivelse; } //////////////////////////////////////// // Eksempel for henting av kvittering //////////////////////////////////////// var køId = "MpcId"; var kvitteringsForespørsel = new Kvitteringsforespørsel(Prioritet.Prioritert, køId); Console.WriteLine(" > Henter kvittering på kø '{0}'...", kvitteringsForespørsel.Mpc); Kvittering kvittering = sdpKlient.HentKvittering(kvitteringsForespørsel); if (kvittering == null) { Console.WriteLine(" - Kø '{0}' er tom. Stopper å hente meldinger. ", kvitteringsForespørsel.Mpc); } if (kvittering is TransportFeiletKvittering) { var feil = ((TransportFeiletKvittering)kvittering).Beskrivelse; Console.WriteLine("En feil skjedde under transport."); } if (kvittering is Leveringskvittering) { Console.WriteLine(" - En leveringskvittering ble hentet!"); } if (kvittering is Åpningskvittering) { Console.WriteLine(" - Har du sett. Noen har åpnet et brev. Moro."); } if (kvittering is Returpostkvittering) { Console.WriteLine(" - Du har fått en returpostkvittering for fysisk post."); } if (kvittering is Mottakskvittering) { Console.WriteLine(" - Kvittering på sending av fysisk post mottatt."); } if (kvittering is Feilmelding) { var feil = (Feilmelding)kvittering; Console.WriteLine(" - En feilmelding ble hentet :" + feil.Detaljer, true); } ////////////////////////////////////////// /// Bekreft ///////////////////////////////////////// sdpKlient.Bekreft((Forretningskvittering)kvittering); }
public void OpprettKlientOgSendPost() { var integrasjonsPunktLocalHostMiljø = new Miljø(new Uri("http://127.0.0.1:9093")); var klientKonfig = new Klientkonfigurasjon(integrasjonsPunktLocalHostMiljø); Databehandler databehandler = null; //Som initiert tidligere Forsendelse forsendelse = null; //Som initiert tidligere var sdpKlient = new SikkerDigitalPostKlient(databehandler, klientKonfig); var transportkvittering = sdpKlient.Send(forsendelse); if (transportkvittering is TransportOkKvittering) { //Når sending til integrasjonspunkt har gått fint. } else if (transportkvittering is TransportFeiletKvittering) { var beskrivelse = ((TransportFeiletKvittering)transportkvittering).Beskrivelse; } //Hent kvitteringer var kvitteringsForespørsel = new Kvitteringsforespørsel(); Console.WriteLine(" > Henter kvittering på kø..."); Kvittering kvittering = sdpKlient.HentKvittering(kvitteringsForespørsel); if (kvittering is TomKøKvittering) { Console.WriteLine(" - Kø er tom. Stopper å hente meldinger. "); } if (kvittering is TransportFeiletKvittering) { var feil = ((TransportFeiletKvittering)kvittering).Beskrivelse; Console.WriteLine("En feil skjedde under transport."); } if (kvittering is Leveringskvittering) { Console.WriteLine(" - En leveringskvittering ble hentet!"); } if (kvittering is Åpningskvittering) { Console.WriteLine(" - Noen har åpnet et brev."); } if (kvittering is Returpostkvittering) { Console.WriteLine(" - Du har fått en returpostkvittering for fysisk post."); } if (kvittering is Mottakskvittering) { Console.WriteLine(" - Kvittering på sending av fysisk post mottatt."); } if (kvittering is Feilmelding) { var feil = (Feilmelding)kvittering; Console.WriteLine(" - En feilmelding ble hentet :" + feil.Detaljer, true); } //Husk at det ikke er mulig å hente nye kvitteringer før du har bekreftet mottak av nåværende. sdpKlient.Bekreft((Forretningskvittering)kvittering); }