Esempio n. 1
0
 public void RecordTemperature(RecordTemperature command)
 {
     _aggregates
     .Provide <TemperatureRecorder>()
     .With(new AggregateId(STATION_ID))
     .Try(temperatureRecorder => temperatureRecorder.Record(command.City, command.Temperature, command.TimeStamp))
     .CatchFault(fault => Handle(fault))
     .CatchException(exception => Handle(exception));
 }
        public async Task <IActionResult> Record(Guid id, [FromBody] decimal temperature)
        {
            var command = RecordTemperature.Create(
                id,
                temperature
                );

            await commandBus.Send(command);

            return(Ok());
        }
Esempio n. 3
0
        public async Task <Unit> Handle(RecordTemperature command, CancellationToken cancellationToken)
        {
            Guard.Against.Null(command, nameof(command));

            var reservation = await repository.Find(command.MeasurementId, cancellationToken);

            reservation !.Record(command.Temperature);

            await repository.Update(reservation, cancellationToken);

            return(Unit.Value);
        }