コード例 #1
0
        public async Task <int> Add(AddInvoiceItemDto addInvoiceItemDto)
        {
            await ThrowExceptionIfProductNotExists(addInvoiceItemDto.WarehouseItemId);
            await ThrowExceptionIfInvoiceNotExists(addInvoiceItemDto.InvoiceId);
            await ThrowExceptionIfInvoiceItemIsAlreadyInInvoice(addInvoiceItemDto.WarehouseItemId, addInvoiceItemDto.InvoiceId);

            var warehouseItem = await _warehouseItemRepository.FindById(addInvoiceItemDto.WarehouseItemId);

            var invoiceItem = new InvoiceItem
            {
                Price           = addInvoiceItemDto.Price,
                Count           = addInvoiceItemDto.Count,
                InvoiceId       = addInvoiceItemDto.InvoiceId,
                WarehouseItemId = addInvoiceItemDto.WarehouseItemId,
                WarehouseItem   = warehouseItem
            };

            await ThrowExceptionIfProductIsNotUpForSale(invoiceItem);

            _repository.Add(invoiceItem);
            await _unitOfWork.CompleteAsync();

            return(invoiceItem.Id);
        }
コード例 #2
0
 public async Task <int> Add(AddInvoiceItemDto addInvoiceItemDto)
 {
     return(await _service.Add(addInvoiceItemDto));
 }