Beispiel #1
0
        private static bool Handle(DeelnemerGeregistreerd deelnemerGeregistreerd)
        {
            DeelnemerRepository.RegistreerDeelnemer(deelnemerGeregistreerd);

            Console.WriteLine("Deelnemer {0} geregistreerd", deelnemerGeregistreerd.Naam);

            return true;
        }
        public static void RegistreerDeelnemer(DeelnemerGeregistreerd deelnemerGeregistreerd)
        {
            Deelnemer deelnemer = new Deelnemer
            {
                Id = deelnemerGeregistreerd.Id,
                Nummer = deelnemerGeregistreerd.Nummer,
                Naam = deelnemerGeregistreerd.Naam,
                EmailAdres = deelnemerGeregistreerd.EmailAdres,
                Straat = deelnemerGeregistreerd.Straat,
                Huisnummer = deelnemerGeregistreerd.Huisnummer,
                HuisnummerToevoeging = deelnemerGeregistreerd.HuisnummerToevoeging,
                Postcode = deelnemerGeregistreerd.Postcode,
                Plaats = deelnemerGeregistreerd.Plaats
            };

            RegistreerDeelnemer(deelnemer);
        }
Beispiel #3
0
 private bool HandleEvent(DeelnemerGeregistreerd e)
 {
     using (var connection = new SqlConnection(ConfigurationManager.ConnectionStrings["DeelnemerBeheer"].ConnectionString))
     {
         string commandText = @"
             INSERT INTO [dbo].[Deelnemer] ([Nummer], [Version], [Naam], [EmailAdres], [WoonAdresStraat], [WoonAdresHuisnummer],
                                            [WoonAdresHuisnummerToevoeging], [WoonAdresPostcode], [WoonAdresPlaats], [Id])
             VALUES (@Nummer, @Version, @Naam, @EmailAdres, @Straat, @Huisnummer, @HuisnummerToevoeging, @Postcode, @Plaats, @Id)";
         CommandDefinition cmd = new CommandDefinition(commandText, e);
         connection.Execute(cmd);
     }
     return true;
 }
        private bool Handle(DeelnemerGeregistreerd e)
        {
            // zoek de bijbehorende instantie van het RegistreerAanmelding proces
            ProcesState state = RaadpleegProcesState(e.CorrelationId);
            if (state == null)
            {
                return false;
            }

            // als de deelnemer al bekend is, beschouw het event als afgehandeld (idempotentie)
            if (!string.IsNullOrEmpty(state.DeelnemerNummer))
            {
                return true;
            }

            // werk het deelnemernummer bij
            state.DeelnemerNummer = e.Nummer;
            UpdateProcesState(state);

            // controleer aanwezigheid werkgever
            // TODO

            try {
                // registreer de werkgever
                WerkgeverGegevens gegevens = state.InitierendCommand.WerkgeverGegevens;
                RegistreerWerkgeverCommand registreerWerkgeverCommand = new RegistreerWerkgeverCommand
                {
                    CorrelationId = e.CorrelationId,
                    Id = gegevens.Id,
                    Version = 0,
                    BedrijfsNaam = gegevens.BedrijfsNaam,
                    NaamContactPersoon = gegevens.NaamContactPersoon,
                    EmailAdres = gegevens.EmailAdres,
                    Straat = gegevens.Straat,
                    Huisnummer = gegevens.Huisnummer,
                    HuisnummerToevoeging = gegevens.HuisnummerToevoeging,
                    Postcode = gegevens.Postcode,
                    Plaats = gegevens.Plaats
                };
                using (var client = new HttpClient())
                {
                    client.BaseAddress = new Uri("http://localhost:24275");
                    client.DefaultRequestHeaders.Accept.Clear();
                    client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
                    HttpResponseMessage response = client.PostAsJsonAsync("/api/werkgever", registreerWerkgeverCommand).Result;
                }
            }
            catch (Exception ex)
            {
                state.Status = "Fout";
                state.Foutmelding = ex.ToString();
                UpdateProcesState(state);
                return false;
            }

            return true;
        }