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)); }
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); }
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)); }