Example #1
0
        /// <summary>
        /// Method responsible for update data.
        /// </summary>
        /// <param name="id"></param>
        /// <param name="data"></param>
        /// <returns></returns>
        /// <exception cref="Core.DomainObjects.Exceptions.NotFoundException"></exception>
        /// <exception cref="ApplicationException"></exception>
        public async Task <ApplicationDataResult <ProductDto> > UpdateASync(Guid id, AddOrUpdateProductDto data)
        {
            ValidationResult validationResult = await _validatorProduct.ValidateAsync(data);

            if (validationResult.IsValid is false)
            {
                return(FactoryFromValidationResult <ProductDto>(validationResult));
            }

            Product product = await _productRepository.FindAsync(id);

            if (product is null)
            {
                throw ExceptionsFactory.FactoryNotFoundException <Product>(id);
            }

            Product result = await _productRepository.FindAsync(new ProductFilter { Description = data.Description });

            if (result != null && result.Id != id)
            {
                throw ExceptionsFactory.FactoryApplicationException(ErrorMessages.ProductFound);
            }

            product.Update(data.Description, data.IsActive);

            _productRepository.Update(product);

            await _productRepository.UnitOfWork.CommitAsync();

            return(FactoryResultFromData(_mapper.Map <ProductDto>(product)));
        }
Example #2
0
 private void ValidateIfNotExistsItem(PurchaseItem item)
 {
     if (ExistsItem(item) is false)
     {
         throw ExceptionsFactory.FactoryNotFoundException <Purchase>(item.Id);
     }
 }
        public async Task <ApplicationDataResult <PurchaseItemDto> > UpdateItemAsync(Guid purchaseId, Guid purchaseItemId,
                                                                                     AddOrUpdatePurchaseItemDto data)
        {
            ValidationResult validationResult = await _validatorPurchaseItem.ValidateAsync(data);

            if (validationResult.IsValid is false)
            {
                return(FactoryFromValidationResult <PurchaseItemDto>(validationResult));
            }

            Purchase purchase = await _purchaseRepository.FindAsync(purchaseId);

            PurchaseItem purchaseItem = purchase.FindItemById(purchaseItemId);

            if (purchaseItem is null)
            {
                throw ExceptionsFactory.FactoryNotFoundException <PurchaseItem>(purchaseItemId);
            }

            Product product = await _productRepository.FindAsync(data.ProductId);

            if (product is null)
            {
                throw ExceptionsFactory.FactoryNotFoundException <Product>(purchaseId);
            }

            purchaseItem.Update(data.Amount, data.Value, product);

            await _purchaseService.UpdateItemAsync(purchase, purchaseItem);

            return(FactoryResultFromData(_mapper.Map <PurchaseItemDto>(purchaseItem)));
        }
Example #4
0
 private void ValidateIfNotExistsItem(OutputItem item)
 {
     if (ExistsItem(item) is false)
     {
         throw ExceptionsFactory.FactoryNotFoundException <Output>(item.Id);
     }
 }
        public async Task <IList <PurchaseItemDto> > FindItensAsync(Guid purchaseId)
        {
            Purchase purchase = await _purchaseRepository.FindAsync(purchaseId);

            if (purchase is null)
            {
                throw ExceptionsFactory.FactoryNotFoundException <Purchase>(purchaseId);
            }

            return(_mapper.Map <IList <PurchaseItemDto> >(purchase.Items));
        }
        public async Task <PurchaseItemDto> FindItemAsync(Guid purchaseId, Guid purchaseItemId)
        {
            Purchase purchase = await _purchaseRepository.FindAsync(purchaseId);

            if (purchase is null)
            {
                throw ExceptionsFactory.FactoryNotFoundException <Purchase>(purchaseId);
            }

            return(_mapper.Map <PurchaseItemDto>(purchase.FindItemById(purchaseItemId)));
        }
        public async Task CloseAsync(Guid purchaseId)
        {
            Purchase purchase = await _purchaseRepository.FindAsync(purchaseId);

            if (purchase is null)
            {
                throw ExceptionsFactory.FactoryNotFoundException <Purchase>(purchaseId);
            }

            await _purchaseService.CloseAsync(purchase);
        }
        public async Task RemoveAsync(Guid purchaseId)
        {
            Purchase purchase = await _purchaseRepository.FindAsync(purchaseId);

            if (purchase is null)
            {
                throw ExceptionsFactory.FactoryNotFoundException <Purchase>(purchaseId);
            }

            _purchaseRepository.Remove(purchase);

            await _purchaseRepository.UnitOfWork.CommitAsync();
        }
Example #9
0
        /// <summary>
        /// Method responsible for remove data.
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        /// <exception cref="Core.DomainObjects.Exceptions.NotFoundException"></exception>
        public async Task RemoveASync(Guid id)
        {
            Product product = await _productRepository.FindAsync(id);

            if (product is null)
            {
                throw ExceptionsFactory.FactoryNotFoundException <Product>(id);
            }

            _productRepository.Remove(product);

            await _productRepository.UnitOfWork.CommitAsync();
        }
        public async Task RemoveItemAsync(Guid purchaseId, Guid purchaseItemId)
        {
            Purchase purchase = await _purchaseRepository.FindAsync(purchaseId);

            if (purchase is null)
            {
                throw ExceptionsFactory.FactoryNotFoundException <Purchase>(purchaseId);
            }

            PurchaseItem purchaseItem = purchase.FindItemById(purchaseItemId);

            if (purchaseItem is null)
            {
                throw ExceptionsFactory.FactoryNotFoundException <PurchaseItem>(purchaseItemId);
            }

            await _purchaseService.RemoveItemAsync(purchase, purchaseItem);
        }
        public async Task <ApplicationDataResult <PurchaseDto> > UpdateAsync(Guid purchaseId, AddOrUpdatePurchaseDto data)
        {
            ValidationResult validationResult = await _validatorPurchase.ValidateAsync(data);

            if (validationResult.IsValid is false)
            {
                return(FactoryFromValidationResult <PurchaseDto>(validationResult));
            }

            Purchase purchase = await _purchaseRepository.FindAsync(purchaseId);

            if (purchase is null)
            {
                throw ExceptionsFactory.FactoryNotFoundException <Purchase>(purchaseId);
            }

            purchase.Update(data.Description, data.Date);

            _purchaseRepository.Update(purchase);

            await _purchaseRepository.UnitOfWork.CommitAsync();

            return(FactoryResultFromData(_mapper.Map <PurchaseDto>(purchase)));
        }