Ejemplo n.º 1
0
        public async Task <Result> Handle(AddNewExpenseCommand request, CancellationToken cancellationToken)
        {
            using (unitOfWork)
            {
                var period = await unitOfWork.ReportingPeriodRepository.FindByIdAsync(request.PeriodId);

                if (ReferenceEquals(period, null))
                {
                    throw new Exception($"Unable to find period '{request.PeriodId}'");
                }

                var producer = new Producer(new ProducerId(request.PeriodId));
                period.RegisterExpense(producer, request.Purchase);

                await unitOfWork.CommitAsync(cancellationToken);

                return(Result.Success);
            }
        }
Ejemplo n.º 2
0
 public async Task <IActionResult> AddExpense(AddNewExpenseCommand command)
 => await this.Send(command);