Пример #1
0
        public async Task <IActionResult> Add(NewReceiptVM receiptVM)
        {
            var existingValidation = await _receiptRepository.VerifyExistingReceiptInMeasurement(receiptVM.Measurement.Id, receiptVM.Contract.Id);

            if (existingValidation.IsFailure)
            {
                return(ErrorContent(existingValidation.Error));
            }

            var contract = await _contractRepository.GetById(receiptVM.Contract.Id);

            var receipt    = Receipt.Create(receiptVM.Measurement.Id, receiptVM.Contract.Id, receiptVM.CurrentRead, receiptVM.NewRead);
            var chargeList = await _chargeRepository.GetValidChargeActive();

            receipt.CalculateTotalAmount(contract, chargeList);
            await _receiptRepository.Save(receipt);

            return(Ok());
        }