public async Task <bool> CreateProduct(ProductCreateRequest request) { var sessions = _httpContextAccessor .HttpContext .Session .GetString(SystemConstants.AppSettings.Token); var client = _httpClientFactory.CreateClient(); client.BaseAddress = new Uri(_configuration[SystemConstants.AppSettings.BaseAddress]); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", sessions); var requestContent = new MultipartFormDataContent(); if (request.ThumbnailImage != null) { byte[] data; using (var br = new BinaryReader(request.ThumbnailImage.OpenReadStream())) { data = br.ReadBytes((int)request.ThumbnailImage.OpenReadStream().Length); } ByteArrayContent bytes = new ByteArrayContent(data); requestContent.Add(bytes, "ThumbnailImage", request.ThumbnailImage.FileName); } requestContent.Add(new StringContent(string.IsNullOrEmpty(request.Name) ? "" : request.Name.ToString()), "name"); requestContent.Add(new StringContent(string.IsNullOrEmpty(request.Description) ? "" : request.Description.ToString()), "description"); requestContent.Add(new StringContent(string.IsNullOrEmpty(request.Details) ? "" : request.Details.ToString()), "details"); requestContent.Add(new StringContent(request.Price.ToString()), "price"); requestContent.Add(new StringContent(request.OriginalPrice.ToString()), "originalPrice"); requestContent.Add(new StringContent(request.Stock.ToString()), "stock"); var response = await client.PostAsync($"/api/products/", requestContent); return(response.IsSuccessStatusCode); }
public async Task <IActionResult> Create(ProductCreateRequest request, string keyword, int pageIndex = 1, int pageSize = 10) { string uniqueFileName = null; var uploadFolder = Path.Combine(_hostingEnvironment.WebRootPath, "img"); if (request.Image.FileName == null) { return(BadRequest("Vui lòng chọn hình ảnh ")); } uniqueFileName = Guid.NewGuid().ToString() + "_" + request.Image.FileName; var filePath = Path.Combine(uploadFolder, uniqueFileName); request.Image.CopyTo(new FileStream(filePath, FileMode.Create)); var fileName = uniqueFileName; var requestView = new GetProductPagingRequest() { Keyword = keyword, pageIndex = pageIndex, pageSize = pageSize }; var result = await _productService.CreateProduct(request, fileName); var model = await _productService.GetAllPaging(requestView); if (result.IsSucceed) { TempData["result"] = "Thêm mới thành công"; //return RedirectToAction("Index"); var ajax = new { isValid = true, html = JsonHelper.RenderRazorViewToString(this, "_ViewAll", model.ResultObject) }; return(Json(ajax)); } ModelState.AddModelError("", result.Message); return(Json(new { isValid = true, html = JsonHelper.RenderRazorViewToString(this, "_ViewAll", result.ResultObject) })); }
public async Task <ActionResult <ProductVm> > PostProduct([FromForm] ProductCreateRequest productCreateRequest) { var product = new Product { Name = productCreateRequest.Name, Price = productCreateRequest.Price, Description = productCreateRequest.Description, BrandId = productCreateRequest.BrandId, CreateDate = DateTime.Now, }; if (productCreateRequest.ThumbnailImageUrl != null) { product.ImageFileName = await SaveFile(productCreateRequest.ThumbnailImageUrl); } _context.Products.Add(product); await _context.SaveChangesAsync(); foreach (var Id in productCreateRequest.CategoryId) { _context.ProductCategory.Add( new ProductCategory { ProductId = product.Id, CategoryId = Id } ); } await _context.SaveChangesAsync(); return(Ok()); }
public async Task PutBrandBy_Fail_IdNotFound() { var dbContext = _fixture.Context; dbContext.Brands.Add(new Brand { Id = 1, Name = "Test brand" }); dbContext.Categories.Add(new Category { Id = 1, Name = "Test category" }); dbContext.Products.Add(new Product { Id = 1, Name = "Test product 1", BrandId = 1 }); await dbContext.SaveChangesAsync(); var ListId = new List <int>(); ListId.Add(1); var product = new ProductCreateRequest { Name = "Test put product", BrandId = 1, CategoryId = ListId }; var result = await controller.PutProduct(1999, product); Assert.IsType <NotFoundResult>(result); }
public async Task <IActionResult> AddHandle([FromForm] ProductCreateRequest request, List <IFormFile> files) { if (files == null || files.Count == 0) { TempData["message"] = "Ảnh chưa được chọn"; return(View("Add")); } if (!ModelState.IsValid) { TempData["message"] = "Thêm sản phẩm thất bại"; return(View("Add", request)); } try { request.ThumbnailImage = files; var result = await _productApiClient.Add(request); if (result) { TempData["message"] = "Thêm sản phẩm thành công"; return(RedirectToAction("List")); } TempData["message"] = "Thêm sản phẩm thất bại"; return(RedirectToAction("List")); } catch (Exception) { TempData["message"] = "Thêm sản phẩm thất bại"; return(View("Add", request)); } }
//Thêm sản phẩm mới public async Task <int> Create(ProductCreateRequest request) { var product = new Product() { Name_Phone = request.Name_Phone, Description = request.Description, Details = request.Details, Price = request.Price, Promotion_Price = request.Promotion_Price, DateCreated = DateTime.Now, }; //Luu anh if (request.Image != null) { product.ProductImages = new List <ProductImage>() { new ProductImage() { DateCreated = DateTime.Now, FileSize = request.Image.Length, ImagePath = await this.SaveFile(request.Image), IsDefault = true, } }; } _context.Products.Add(product); await _context.SaveChangesAsync(); return(product.Id); }
public void ShouldReturnErrorCodes(string name, long category_id, decimal price, decimal discount, string description, long file_id, ProductValidationErrors expectedError) { CreateRequestValidation createRequestValidation = new CreateRequestValidation(); FindRequestValidation findRequestValidation = new FindRequestValidation(); UpdateRequestValidation updateRequestValidation = new UpdateRequestValidation(); DeleteRequestValidation deleteRequestValidation = new DeleteRequestValidation(); ProductValidation validation = new ProductValidation(createRequestValidation, findRequestValidation, updateRequestValidation, deleteRequestValidation); ProductCreateRequest request = new ProductCreateRequest { Name = name, Category_Id = category_id, Price = price, Discount = discount, Description = description, File_Id = file_id }; var listErrors = validation.CreateRequestValidation.Validate(request); foreach (var error in listErrors) { Assert.Equal(expectedError, error); } }
public async Task ProductsController_Get_Success() { var product = new ProductCreateRequest { Name = "Test product3", BrandId = _fixture.Brands[0].Id, Price = 123, ImageUrl = "http://image", Description = "description", CategoryIds = new List <int> { _fixture.Categories[0].Id } }; var controller = new ProductsController(_fixture.ProductService); var creatResult = await controller.Post(product); var createResponse = GetResponse <ProductCreateResponse>(creatResult); Assert.Equal("Test product3", createResponse.Name); var getResult = await controller.Get(createResponse.Id); var getResponse = GetResponse <ProductVm>(getResult); Assert.Equal(getResponse.BrandId, product.BrandId); Assert.Equal(getResponse.Price, product.Price); Assert.Equal(getResponse.ImageUrl, product.ImageUrl); Assert.Equal(getResponse.Description, product.Description); Assert.Equal(getResponse.Categories.Select(x => x.Id), product.CategoryIds); }
public async Task <int> Create(ProductCreateRequest request) { var product = new Product() { Price = request.Price, OriginalPrice = request.OriginalPrice, Stock = request.Stock, ViewCount = 0, DateCreated = DateTime.Now, ProductTranslations = new List <ProductTranslation>() { new ProductTranslation() { Name = request.Name, Description = request.Description, Details = request.Details, SeoDescription = request.SeoDescription, SeoAlias = request.SeoAlias, SeoTitle = request.SeoTitle, LanguageId = request.LanguageId } } }; _context.Products.Add(product); return(await _context.SaveChangesAsync()); }
public ProductCreateResponse CreateProduct(ProductCreateRequest request) { var response = new ProductCreateResponse(); var validationErrors = _validation.CreateRequestValidation.Validate(request); var dbErrors = new List <DatabaseErrors>(); if (validationErrors.Count != 0) { response.ValidationErrors = validationErrors; } else { try { var product = AddProductToDB(request); if (product == null) { throw new NullReferenceException("Product not found"); } response.Product = product; } catch (NullReferenceException) { dbErrors.Add(DatabaseErrors.DB_CONNECTION_FAILED); } response.DBErrors = dbErrors; } return(response); }
public async Task <ActionResult <ProductsResponse> > PostProduct(ProductCreateRequest request) { //TODO comprobar que el producto el id de store es el del token var product = ProductMapper.Parse(request); _context.Product.Add(product); try { await _context.SaveChangesAsync(); } catch (DbUpdateException) { if (ProductExists(request.Id)) { return(Conflict()); } else { throw; } } return(CreatedAtAction("GetProduct", new { id = product.Id }, ProductMapper.Parse(product))); }
public async Task <ApiResult <string> > Create(ProductCreateRequest request) { var sections = _httpContextAccessor.HttpContext.Session.GetString("Token"); _client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", sections); MultipartFormDataContent form = new MultipartFormDataContent(); form.Add(new StringContent(request.LanguageId), "languageId"); form.Add(new StringContent(request.Name), "Name"); form.Add(new StringContent(request.Description != null?request.Description:null), "Description"); form.Add(new StringContent(request.CategoryId.ToString()), "CategoryId"); form.Add(new StringContent(request.Stock.ToString()), "Stock"); form.Add(new StringContent(request.Price.ToString()), "Price"); form.Add(new StringContent(request.OriginalPrice.ToString()), "OriginalPrice"); if (request.ThumbnailImage != null) { byte[] data; using (var br = new BinaryReader(request.ThumbnailImage.OpenReadStream())) data = br.ReadBytes((int)request.ThumbnailImage.OpenReadStream().Length); ByteArrayContent bytes = new ByteArrayContent(data); form.Add(bytes, "ThumbnailImage", request.ThumbnailImage.FileName); } var response = await _client.PostAsync($"/api/products", form); var result = await response.Content.ReadAsStringAsync(); if (response.IsSuccessStatusCode) { return(JsonConvert.DeserializeObject <ApiResultSuccess <string> >(result)); } return(JsonConvert.DeserializeObject <ApiResultErrors <string> >(result)); }
public async Task <bool> Add(ProductCreateRequest request) { _client.BaseAddress = new Uri(_config[Constants.AppSettings.BaseAddress]); var requestContent = new MultipartFormDataContent(); if (request.ThumbnailImage != null) { byte[] data; foreach (var item in request.ThumbnailImage) { using (var br = new BinaryReader(item.OpenReadStream())) { data = br.ReadBytes((int)item.OpenReadStream().Length); } ByteArrayContent bytes = new ByteArrayContent(data); requestContent.Add(bytes, "thumbnailImage", item.FileName); } } requestContent.Add(new StringContent(request.Price.ToString()), "price"); requestContent.Add(new StringContent(request.OriginalPrice.ToString()), "originalPrice"); requestContent.Add(new StringContent(request.Name.ToString()), "name"); requestContent.Add(new StringContent(request.Description.ToString()), "description"); requestContent.Add(new StringContent(request.BrandId.ToString()), "brandId"); requestContent.Add(new StringContent(request.CategoryIds.First().ToString()), "categoryIds"); var response = await _client.PostAsync("/api/products/", requestContent); return(response.IsSuccessStatusCode); }
public async Task <IActionResult> PostFunction([FromForm] ProductCreateRequest request) { _logger.LogInformation(_localizer["BeginProduct"]); var product = _mapper.Map <Product>(request); if (string.IsNullOrEmpty(request.SeoAliasVn)) { product.SeoAliasVn = TextHelper.ToUnsignString(product.NameVn); } product.Id = await _sequenceService.GetProductNewId(); //Process attachment if (request.Attachments != null && request.Attachments.Count > 0) { foreach (var attachment in request.Attachments) { var attachmentEntity = await SaveFile(product.Id, attachment); _context.Attachments.Add(attachmentEntity); } } _context.Products.Add(product); var result = await _context.SaveChangesAsync(); if (result > 0) { _logger.LogInformation(_localizer["EndPostProductSuccess"]); return(CreatedAtAction(nameof(GetById), new { id = product.Id }, request)); } _logger.LogInformation(_localizer["EndPostProductFail"]); return(BadRequest(new ApiBadRequestResponse(_localizer["CreateProductFail"]))); }
public async Task <int> Create(ProductCreateRequest request) { var status = 0; var product = new Product { Name = request.Name, Price = request.Price, PromotionPrice = request.PromotionPrice, Description = request.Description, Detail = request.Detail }; if (request.ThumbnailImage != null) { product.ProductImages = new List <ProductImage>() { new ProductImage { Caption = "thumbnail image", FileSize = request.ThumbnailImage.Length, ImagePath = await this.SaveFile(request.ThumbnailImage) } }; } var res = _context.Products.Add(product); if (res != null) { status = await _context.SaveChangesAsync(); } return(product.ID); }
public async Task <int> Create(ProductCreateRequest request) { var product = new Entites.Product() { Name = request.Name, Price = request.Price, Description = request.Description, AppUser = request.User, }; if (request.ThumbnailImage != null) { product.ProductImages = new List <Entites.ProductImage>() { new Entites.ProductImage() { DateCreated = DateTime.Now, ImagePath = await this.SaveFile(request.ThumbnailImage), IsDefault = true, } }; } context.Add(product); return(await context.SaveChangesAsync()); }
public async Task Add(ProductCreateRequest request) { var requestMessage = new HttpRequestMessage(HttpMethod.Post, "/product/create"); var content = JsonConvert.SerializeObject(requestMessage); requestMessage.Content = new StringContent(content, Encoding.UTF8, "application/json"); }
public async Task <IActionResult> Create([FromForm] ProductCreateRequest request) { if (ModelState.IsValid) { var result = await _productServive.Create(request); if (result.IsSuccessed == true) { TempData["result"] = "Create Success"; TempData["IsSuccess"] = true; } else { TempData["result"] = result.Message; TempData["IsSuccess"] = false; } var category = await _categoryService.GetById(request.CategoryId, "vn"); return(Redirect($"/product/{category.ResultObject.CategoryUrl}")); } else { return(BadRequest(ModelState)); } }
public async Task <IActionResult> PostProduct([FromForm] ProductCreateRequest productCreateRequest) { var postProduct = new Product { ProductName = productCreateRequest.Name, Description = productCreateRequest.Description, Price = productCreateRequest.Price, InStock = productCreateRequest.Instock, CategoryId = productCreateRequest.CategoryId }; foreach (var el in productCreateRequest.Images) { postProduct.ProductImages.Add(new ProductImage { ImageLink = el, Product = postProduct }); } var isPostSuccessProduct = await _productService.CreateProduct(postProduct); if (isPostSuccessProduct) { return(NoContent()); } else { return(NotFound()); } }
public async Task <int> Create(ProductCreateRequest request) { var product = new Product() { Prod_Name = request.Prod_Name, Price = request.Price, Quantity = request.Quantity, DateCreate = DateTime.Now, Description = request.Description, ImagePath = request.ImagePath, Supplier_ID = request.Supplier_ID }; //Save image //if (request.ThumbnailImage != null) //{ // product.ProductImages = new List<ProductImage>() // { // new ProductImage() // { // Caption = "Thumbnail image", // DateCreated = DateTime.Now, // FileSize = request.ThumbnailImage.Length, // ImagePath = await this.SaveFile(request.ThumbnailImage), // IsDefault = true, // SortOrder = 1 // } // }; //} _context.ProductImage.Add(product); await _context.SaveChangesAsync(); return(product.Prod_ID); }
public ProductCreateResponse Create(ProductCreateRequest request) { var response = new ProductCreateResponse(); _facade.Create(request.Product); return(response); }
public async Task ProductsController_Post_Success() { var product = new ProductCreateRequest { Name = "Test product4", Price = 123, ImageUrl = "http://image", Description = "description", BrandId = _fixture.Brands[0].Id, CategoryIds = new List <int> { _fixture.Categories[0].Id } }; var controller = new ProductsController(_fixture.ProductService); var result = await controller.Post(product); var response = GetResponse <ProductCreateResponse>(result); Assert.Equal(product.Name, response.Name); Assert.Equal(product.Price, response.Price); Assert.Equal(product.ImageUrl, response.ImageUrl); Assert.Equal(product.Description, response.Description); Assert.Equal(product.BrandId, response.BrandId); Assert.Equal(product.CategoryIds, response.CategoryIds); }
public override Task <ProductGetResponse> Create(ProductCreateRequest request, ServerCallContext context) { if (store.ContainsKey(request.ProductId)) { return(Task.FromResult(default(ProductGetResponse))); } Channel channel = new Channel("127.0.0.1:50051", ChannelCredentials.Insecure); ClientCallInvoker callInvoker = new ClientCallInvoker(channel); var userClient = new UserService.UserServiceClient(callInvoker); var product = store[request.UserId]; product.ProductId = request.ProductId; product.ProductName = request.ProductName; product.User = userClient.Get(new UserGetRequest { UserId = request.UserId }); userClient.Update(new UserGetResponse { UserId = product.User.UserId, UserName = product.User.UserName, ProductCount = product.User.ProductCount + 1 }); //关闭 channel.ShutdownAsync().Wait(); return(Task.FromResult(product)); }
public ProductCreateResponse Create(ProductCreateRequest request) { var factory = new ExternalCommandFactory(); var command = factory.Create <ProductCreateCommand>(); return(command.Execute(request)); }
public async Task <IActionResult> PutProduct(int id, ProductCreateRequest productCreateRequest) { var putProduct = new Product { ProductName = productCreateRequest.Name, Description = productCreateRequest.Description, Price = productCreateRequest.Price, InStock = productCreateRequest.Instock, CategoryId = productCreateRequest.CategoryId }; foreach (var el in productCreateRequest.Images) { putProduct.ProductImages.Add(new ProductImage { ImageLink = el, ProductId = id }); } var isPutSuccessCategory = await _productService.UpdateProduct(id, putProduct); if (isPutSuccessCategory) { return(NoContent()); } else { return(NotFound()); } }
public async Task<IActionResult> CreateAsync() { ViewBag.Languages = (await _languageApiClient.GetAll()).ResultObj; var productCreateRequest = new ProductCreateRequest() { LanguageId = GetLanguageId() }; return View(productCreateRequest); }
public void Validate_When_has_nested_object_errors_Then_those_errors_are_not_returned() { var validator = new ProductCreateRequestValidator(); var request = new ProductCreateRequest { Product = new ProductCreateDto() }; var validatorResult = validator.Validate(request); Assert.IsTrue(validatorResult.IsValid); }
public async Task <int> Create(ProductCreateRequest request) { var product = new Product() { Price = request.Price, }; _context.Products.Add(product); return(await _context.SaveChangesAsync()); }
public static Product MapFromRequest(ProductCreateRequest request) { return(new Product { Code = request.Code, Name = request.Name, Description = request.Description, Price = request.Price, }); }
public async Task <IActionResult> AddProduct([FromForm] ProductCreateRequest request) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } await _productService.Add(request); return(Ok()); }