示例#1
0
 private bool HandleEvent(WerkgeverGeregistreerd e)
 {
     using (var connection = new SqlConnection(ConfigurationManager.ConnectionStrings["WerkgeverBeheer"].ConnectionString))
     {
         string commandText = @"
             INSERT INTO [dbo].[Werkgever] ([Nummer], [Version], [BedrijfsNaam], [NaamContactpersoon], [EmailAdres], [VestigingsAdresStraat], [VestigingsAdresHuisnummer],
                                            [VestigingsAdresHuisnummerToevoeging], [VestigingsAdresPostcode], [VestigingsAdresPlaats], [Id])
             VALUES (@Nummer, @Version, @BedrijfsNaam, @NaamContactpersoon, @EmailAdres, @Straat, @Huisnummer, @HuisnummerToevoeging, @Postcode, @Plaats, @Id)";
         CommandDefinition cmd = new CommandDefinition(commandText, e);
         connection.Execute(cmd);
     }
     return true;
 }
        private bool Handle(WerkgeverGeregistreerd e)
        {
            // zoek de bijbehorende instantie van het RegistreerAanmelding proces
            ProcesState state = RaadpleegProcesState(e.CorrelationId);
            if (state == null)
            {
                return false;
            }

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

            // werk het werkgevernummer bij
            state.WerkgeverNummer = e.Nummer;
            UpdateProcesState(state);

            try
            {
                // registreer de arbeidsverhouding
                RegistreerArbeidsverhoudingCommand registreerArbeidsverhoudingCommand = new RegistreerArbeidsverhoudingCommand
                {
                    CorrelationId = e.CorrelationId,
                    Id = Guid.NewGuid(),
                    Version = 0,
                    DeelnemerNummer = state.DeelnemerNummer,
                    WerkgeverNummer = state.WerkgeverNummer,
                    Ingangsdatum = state.InitierendCommand.IngangsDatum,
                    EindDatum = state.InitierendCommand.EindDatum
                };
                using (var client = new HttpClient())
                {
                    client.BaseAddress = new Uri("http://localhost:24693");
                    client.DefaultRequestHeaders.Accept.Clear();
                    client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
                    HttpResponseMessage response = client.PostAsJsonAsync("/api/arbeidsverhouding", registreerArbeidsverhoudingCommand).Result;
                }
            }
            catch (Exception ex)
            {
                state.Status = "Fout";
                state.Foutmelding = ex.ToString();
                UpdateProcesState(state);
                return false;
            }

            return true;
        }