public AddProductResponse AddProduct(AddProductRequest request) { var response = new AddProductResponse { Errors = new List <Error>() }; try { Repository.AddProduct(request.ProductEntity); response.Message = "Product added successfully!"; } catch (Exception ex) { response.Errors.Add( new Error { CustomisedMessage = "Unable to add product", StackTrace = ex.StackTrace, SystemMessage = ex.Message, }); Logger.Fatal(request); Logger.Fatal(response, ex); } return(response); }
public Product AddProduct(AddProductResponse newProductRes) { using (context) { try { if (!string.IsNullOrEmpty(newProductRes.NewProduct.Name) || string.IsNullOrEmpty(newProductRes.NewProduct.Description)) { var product = context.Products.Where(prod => prod.Name == newProductRes.NewProduct.Name && prod.Price == newProductRes.NewProduct.Price).ToList(); if (!product.Any()) { context.Products.Add(newProductRes.NewProduct); newProductRes.Success = context.SaveChanges() != 0; } else { newProductRes.Success = false; newProductRes.ErrorMessage = $"The product {newProductRes.NewProduct.Name} already exists."; } } else { newProductRes.Success = false; newProductRes.ErrorMessage = "The product must have the following details: price, name and description."; } } catch (Exception ex) { newProductRes.Success = false; newProductRes.ErrorMessage = $"An error has occured: {ex.Message} {ex.InnerException}"; } } return(newProductRes.NewProduct); }
public IActionResult AddProduct([FromBody] Product data) { var productResponse = new AddProductResponse { NewProduct = data }; productRepository.AddProduct(productResponse); return(Json(productResponse)); }
public async Task Consume(ConsumeContext <AddProductRequest> context) { var request = context.Message; var cart = await repo.GetCartByIdAsync(request.CartId); var product = request.Product; //double dispatch pattern cart.AddProduct(ShoppingCartProduct.Create(product.Id, product.Name, cart, new Money(product.Price.Amount))); await repo.SaveAsync(cart); var response = new AddProductResponse(true, ResponseAction.Updated); await context.RespondAsync(response); }
public AddProductResponse AddProduct(AddProductRequest request) { AddProductResponse addProductResponse = new AddProductResponse(); addProductResponse.Message = "Product not added successfully."; if (String.IsNullOrEmpty(request.AuthToken)) { addProductResponse.Message = "Please pass all mandatory fields."; return(addProductResponse); } AuthenticationToken authToken = new Helper().GetAuthenticationToken(request.AuthToken); if (authToken == null) { addProductResponse.Message = "Unauthorizes user."; return(addProductResponse); } if (String.IsNullOrEmpty(request.productInfo.Name) || String.IsNullOrEmpty(request.productInfo.Quantity)) { addProductResponse.Message = "Please pass all mandatory fields."; return(addProductResponse); } ProductEL productEL = new ProductEL(); productEL = MapperUtility.MapTo(request.productInfo, productEL); if (productHelper.AddProduct(productEL)) { addProductResponse.Message = "Product added successfully."; addProductResponse.IsSuccess = true; return(addProductResponse); } else { addProductResponse.Message = "Some error occured."; return(addProductResponse); } }
public AddProductResponse Post_AddProduct([FromBody] Models.Product mProduct) { IProductBS bs = DIFactoryDesigntime.GetInstance <IProductBS>(); IBaseConverter <Models.Product, Entities.Product> convtResult = new AutoMapConverter <Models.Product, Entities.Product>(); Entities.Product eProduct = convtResult.ConvertObject(mProduct); bs.AddProduct(eProduct); var addProductResponse = new AddProductResponse() { ProductID = eProduct.ProductID }; return(addProductResponse); ////Generate a link to the new product and set the Location header in the response. ////For public HttpResponseMessage Post_AddProduct([FromBody] Models.Product mProduct) //var response = Request.CreateResponse(HttpStatusCode.Created); //string uri = Url.Link("GetProductById", new { id = eProduct.ProductID }); //response.Headers.Location = new Uri(uri); //return response; }
/// <summary> /// Method adds product using an injected repository /// </summary> /// <param name="request">Contains product to be added</param> /// <returns>Contains operation status</returns> public AddProductResponse AddProduct(AddProductRequest request) { AddProductResponse response = new AddProductResponse(); try { productsRepository.Add(request.Product); unitOfWork.Commit(); response.Status = true; response.Message = "ok"; } catch (Exception e) { response.Status = false; response.Message = e.Message; if (e.InnerException != null) { response.Message += Environment.NewLine; response.Message += string.Format("Inner exception: {0}", e.InnerException.Message); } } return response; }
public AddProductResponse AddProduct(AddProductRequest request) { AddProductResponse response = new AddProductResponse(); try { if (request.SecurityString == ConfigurationManager.AppSettings[Constants.APP_SETTING_SECURITY_TOKEN]) { LacesDataModel.User.User user = new LacesDataModel.User.User(request.UserId); // Ensure user exists. LacesDataModel.Product.Product product = new LacesDataModel.Product.Product(); product.AskingPrice = request.AskingPrice; product.Brand = request.Brand; product.ConditionId = request.ConditionId; product.CreatedDate = DateTime.Now; product.Description = request.Description; product.Name = request.ProductName; product.ProductStatusId = (int)ProductStatusOptions.Open; product.ProductTypeId = request.ProductTypeId; product.SellerId = user.UserId; product.Size = request.Size; product.UpdatedDate = DateTime.Now; if (product.Add()) { if (request.Images != null && request.Images.Count > 0) { int count = 0; /* This is needed until we can get the Id back from Add(). Remove ASAP */ List <LacesDataModel.Product.Product> queryResult = new List <LacesDataModel.Product.Product>(); SearchEntity search = new SearchEntity(); search.ColumnsToReturn = new List <string>(); search.ColumnsToReturn.Add("ProductId"); search.ConnectionString = Constants.CONNECTION_STRING; search.OrderBy = new OrderBy(); search.OrderBy.Column = "ProductId"; search.OrderBy.Direction = OrderByDirection.DESC; search.PageSizeLimit = 1; search.SchemaName = Constants.SCHEMA_DEFAULT; search.TableName = Constants.TABLE_PRODUCTS; queryResult = new GenericRepository <LacesDataModel.Product.Product>().Read(search); if (queryResult.Count > 0) { product.ProductId = queryResult[0].ProductId; } /* End remove section */ foreach (LacesAPI.Models.Request.ImageInfo image in request.Images) { string fileName = product.ProductId + "_" + count + "." + image.FileFormat; string filePath = ConfigurationManager.AppSettings[Constants.APP_SETTING_PRODUCT_IMAGE_DIRECTORY] + fileName; File.WriteAllBytes(filePath, image.ImageData); Image productImage = new Image(); productImage.AssociatedEntityId = product.ProductId; productImage.FileFormat = image.FileFormat; productImage.FileName = fileName; productImage.FilePath = filePath; productImage.ImageEntityTypeId = (int)ImageEntityTypeOptions.Product; productImage.CreatedDate = DateTime.Now; productImage.UpdatedDate = DateTime.Now; productImage.Add(); } } if (request.Tags != null && request.Tags.Count > 0) { foreach (string tag in request.Tags) { LacesDataModel.Product.Tag newTag = new LacesDataModel.Product.Tag(); newTag.ProductId = product.ProductId; newTag.Description = tag; newTag.Add(); } } response.Success = true; response.Message = "Product succesfully created."; } else { response.Success = false; response.Message = "An error occurred when communicating with the database."; } } else { response.Success = false; response.Message = "Invalid security token."; } } catch (Exception ex) { response = new AddProductResponse(); response.Success = false; if (ex.Message.Contains("find user")) { response.Message = ex.Message; } else { response.Message = "An unexpected error has occurred; please verify the format of your request."; } } return(response); }
public AddProductResponse Post_AddProduct([FromBody] Models.Product mProduct) { IProductBS bs = DIFactoryDesigntime.GetInstance<IProductBS>(); IBaseConverter<Models.Product, Entities.Product> convtResult = new AutoMapConverter<Models.Product, Entities.Product>(); Entities.Product eProduct = convtResult.ConvertObject(mProduct); bs.AddProduct(eProduct); var addProductResponse = new AddProductResponse() { ProductID = eProduct.ProductID }; return addProductResponse; ////Generate a link to the new product and set the Location header in the response. ////For public HttpResponseMessage Post_AddProduct([FromBody] Models.Product mProduct) //var response = Request.CreateResponse(HttpStatusCode.Created); //string uri = Url.Link("GetProductById", new { id = eProduct.ProductID }); //response.Headers.Location = new Uri(uri); //return response; }