public HttpResponseMessage Create([FromBody] RegistreerWerkgeverCommand command) { var werkgever = new PensioenSysteem.Domain.Werkgever.Werkgever(); werkgever.Registreer(command); _repo.Save(werkgever, -1); return(new HttpResponseMessage(HttpStatusCode.Created)); }
private bool Handle(DeelnemerGeregistreerd e) { // zoek de bijbehorende instantie van het RegistreerAanmelding proces ProcessState state = _repository.RaadpleegProcessState(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; _repository.UpdateProcessState(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(); _repository.UpdateProcessState(state); return(false); } return(true); }
public HttpResponseMessage Create([FromBody] RegistreerWerkgeverCommand command) { var werkgever = new PensioenSysteem.Domain.Werkgever.Werkgever(); werkgever.Registreer(command); var repo = new EventSourcedAggregateRepository <PensioenSysteem.Domain.Werkgever.Werkgever>( new FileEventStore(new RabbitMQEventPublisher())); repo.Save(werkgever, -1); return(new HttpResponseMessage(HttpStatusCode.Created)); }
public void Registreer(RegistreerWerkgeverCommand command) { ApplyChange(new WerkgeverGeregistreerd { RoutingKey = "Werkgever.Geregistreerd", CorrelationId = command.CorrelationId, Id = command.Id, Nummer = GenereerWerkgeverNummer(), BedrijfsNaam = command.BedrijfsNaam, NaamContactPersoon = command.NaamContactPersoon, EmailAdres = command.EmailAdres, Straat = command.Straat, Huisnummer = command.Huisnummer, HuisnummerToevoeging = command.HuisnummerToevoeging, Postcode = command.Postcode, Plaats = command.Plaats }); }