public HttpResponseMessage Create([FromBody] RegistreerArbeidsverhoudingCommand command) { var arbeidsverhouding = new PensioenSysteem.Domain.Arbeidsverhouding.Arbeidsverhouding(); arbeidsverhouding.Registreer(command); _repo.Save(arbeidsverhouding, -1); return(new HttpResponseMessage(HttpStatusCode.Created)); }
public HttpResponseMessage Create([FromBody] RegistreerArbeidsverhoudingCommand command) { var arbeidsverhouding = new PensioenSysteem.Domain.Arbeidsverhouding.Arbeidsverhouding(); arbeidsverhouding.Registreer(command); var repo = new EventSourcedAggregateRepository <PensioenSysteem.Domain.Arbeidsverhouding.Arbeidsverhouding>( new FileEventStore(new RabbitMQEventPublisher())); repo.Save(arbeidsverhouding, -1); return(new HttpResponseMessage(HttpStatusCode.Created)); }
private bool Handle(WerkgeverGeregistreerd e) { // zoek de bijbehorende instantie van het RegistreerAanmelding proces ProcessState state = _repository.RaadpleegProcessState(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; _repository.UpdateProcessState(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(); _repository.UpdateProcessState(state); return(false); } return(true); }
public void Registreer(RegistreerArbeidsverhoudingCommand command) { this.ApplyChange(new ArbeidsverhoudingGeregistreerd { RoutingKey = "Arbeidsverhouding.Geregistreerd", CorrelationId = command.CorrelationId, Id = command.Id, Nummer = GenereerArbeidsverhoudingNummer(), DeelnemerNummer = command.DeelnemerNummer, WerkgeverNummer = command.WerkgeverNummer, Ingangsdatum = command.Ingangsdatum, EindDatum = command.EindDatum }); }
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; }