public DataAgent <long> AddProductToStore(ProductInStoreInputModel productInStore)
        {
            var dto    = _mapper.Map <ProductStoreDto>(productInStore);
            var result = _productRepo.AddProductToStore(dto);

            if (result.ContainsData)
            {
                //Добавить проверку на статус публикации товаара
                var productUpdate = _productRepo.Update(new ProductDto
                {
                    Id          = productInStore.ProductId,
                    IsPublished = true
                });
                if (!productUpdate.ContainsData)
                {
                    return(new DataAgent <long>
                    {
                        Data = productUpdate.Data,
                        ResponseMessage = productUpdate.ResponseMessage
                    });
                }
            }
            return(new DataAgent <long>
            {
                Data = result.Data,
                ResponseMessage = result.ResponseMessage
            });
        }
        public DataAgent <int> ChangeProductQuantityInStore(ProductInStoreInputModel productQuantityInStore)
        {
            var dto    = _mapper.Map <ProductStoreDto>(productQuantityInStore);
            var result = _productRepo.ChangeProductQuantityInStore(dto);

            return(new DataAgent <int> {
                Data = result.Data, ResponseMessage = result.ResponseMessage
            });
        }
        public ActionResult <int> ChangeProductQuantityInStore([FromBody] ProductInStoreInputModel productInStoreInputModel)
        {
            var validationResult = _productValidator.ValidateProductStoreInputModelUponCreationOrUpdate(productInStoreInputModel);

            if (!string.IsNullOrEmpty(validationResult))
            {
                return(UnprocessableEntity(validationResult));
            }
            var result = _productManager.ChangeProductQuantityInStore(productInStoreInputModel);

            return(MakeResponse <int, int>(result));
        }
Ejemplo n.º 4
0
        public string ValidateProductStoreInputModelUponCreationOrUpdate(ProductInStoreInputModel model)
        {
            var validationResult = string.Empty;

            validationResult += ValidateProductId(model.ProductId);

            validationResult += model.StoreId == null ? $"{ResponseMessages.StoreFieldMissing} \n" :
                                _storeValidation.ValidateStoreId((int)model.StoreId);

            validationResult += model.Quantity == null ? $"{ResponseMessages.QuantityFieldMissing} \n" :
                                _storeValidation.ValidateQuantityValue((int)model.Quantity);
            return(validationResult);
        }
Ejemplo n.º 5
0
        public string ValidateProductStoreInputModelUponGettingAvailability(ProductInStoreInputModel model)
        {
            var validationResult = string.Empty;

            if (model.StoreId != null & model.Quantity != null)
            {
                validationResult += $"{ResponseMessages.StoreIdOrQuantityFieldMustBeEmpty} \n";
            }
            else
            {
                validationResult += ValidateProductId(model.ProductId);
                validationResult += _storeValidation.ValidateStoreId((int)model.StoreId);
                validationResult += _storeValidation.ValidateQuantityValue(model.Quantity);
            }
            return(validationResult);
        }
        public ActionResult <long> AddProductToStore([FromBody] ProductInStoreInputModel productInStoreInputModel)
        {
            var validationResult = _productValidator.ValidateProductStoreInputModelUponCreationOrUpdate(productInStoreInputModel);

            validationResult += _productValidator.ValidateExistingRecord(productInStoreInputModel.ProductId, (int)productInStoreInputModel.StoreId);
            if (!string.IsNullOrEmpty(validationResult))
            {
                return(UnprocessableEntity(validationResult));
            }
            var result = _productManager.AddProductToStore(productInStoreInputModel);

            if (!result.ContainsData)
            {
                return(Problem(detail: result.ResponseMessage, statusCode: 520));
            }
            return(Created($"id/{result.Data}", result.Data));
        }
        public DataAgent <List <ProductInStoreOutputModel> > GetAvailabilityOfProductInStore(ProductInStoreInputModel productInStore)
        {
            var dto          = _mapper.Map <ProductStoreDto>(productInStore);
            var availability = _productRepo.GetAvailabilityOfProductInStore(dto);
            var result       = new List <ProductInStoreOutputModel>();

            if (availability.ContainsData)
            {
                result = _mapper.Map <List <ProductInStoreOutputModel> >(availability.Data);
            }
            return(new DataAgent <List <ProductInStoreOutputModel> > {
                Data = result, ResponseMessage = availability.ResponseMessage
            });
        }
        public ActionResult <List <ProductInStoreOutputModel> > GetProductQuantityInStore(ProductInStoreInputModel productInStore)
        {
            var validationResult = _productValidator.ValidateProductStoreInputModelUponGettingAvailability(productInStore);

            if (!string.IsNullOrEmpty(validationResult))
            {
                return(UnprocessableEntity(validationResult));
            }
            var result = _productManager.GetAvailabilityOfProductInStore(productInStore);

            return(MakeResponse <List <ProductInStoreOutputModel>, List <ProductInStoreOutputModel> >(result));
        }