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; }