Exemplo n.º 1
0
        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);
        }
Exemplo n.º 5
0
        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);
        }