Пример #1
0
        public HttpResponseMessage Create([FromBody] RegistreerDeelnemerCommand command)
        {
            var deelnemer = new PensioenSysteem.Domain.Deelnemer.Deelnemer();

            deelnemer.Registreer(command);
            _repo.Save(deelnemer, -1);
            return(new HttpResponseMessage(HttpStatusCode.Created));
        }
        public HttpResponseMessage Create([FromBody] RegistreerDeelnemerCommand command)
        {
            var deelnemer = new PensioenSysteem.Domain.Deelnemer.Deelnemer();

            deelnemer.Registreer(command);

            var repo = new EventSourcedAggregateRepository <PensioenSysteem.Domain.Deelnemer.Deelnemer>(
                new FileEventStore(new RabbitMQEventPublisher()));

            repo.Save(deelnemer, -1);

            return(new HttpResponseMessage(HttpStatusCode.Created));
        }
Пример #3
0
        public void RegistreerAanmelding(RegistreerAanmeldingCommand command)
        {
            // registreer een nieuwe instantie van het RegistreerAanmelding proces
            ProcessState state = new ProcessState
            {
                Id = command.CorrelationId,
                InitierendCommand = command,
                DeelnemerNummer   = null,
                WerkgeverNummer   = null,
                StartTijdstip     = DateTime.Now,
                Status            = "Actief"
            };

            _repository.RegistreerProcessStart(state);

            // controleer aanwezigheid deelnemer
            // TODO

            try
            {
                // registreer de werknemer als deelnemer
                WerknemerGegevens          gegevens = command.WerknemerGegevens;
                RegistreerDeelnemerCommand registreerDeelnemerCommand = new RegistreerDeelnemerCommand
                {
                    CorrelationId        = command.CorrelationId,
                    Id                   = gegevens.Id,
                    Version              = 0,
                    Naam                 = gegevens.Naam,
                    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:29713");
                    client.DefaultRequestHeaders.Accept.Clear();
                    client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
                    HttpResponseMessage response = client.PostAsJsonAsync("/api/deelnemer", registreerDeelnemerCommand).Result;
                }
            }
            catch (Exception ex)
            {
                state.Status      = "Fout";
                state.Foutmelding = ex.ToString();
                _repository.UpdateProcessState(state);
            }
        }
 public void Registreer(RegistreerDeelnemerCommand command)
 {
     ApplyChange(new DeelnemerGeregistreerd
     {
         RoutingKey           = "Deelnemer.Geregistreerd",
         CorrelationId        = command.CorrelationId,
         Id                   = command.Id,
         Nummer               = GenereerDeelnemerNummer(),
         Naam                 = command.Naam,
         EmailAdres           = command.EmailAdres,
         Straat               = command.Straat,
         Huisnummer           = command.Huisnummer,
         HuisnummerToevoeging = command.HuisnummerToevoeging,
         Postcode             = command.Postcode,
         Plaats               = command.Plaats
     });
 }