public async Task <IActionResult> UpdateAsync(Guid id, [FromBody] ProductEditRequest request, CancellationToken cancellationToken) { request.Id = id; var responseModel = await this.mediator.Send(request, cancellationToken); return(new CustomActionResult(responseModel)); }
public async Task <int> Update(ProductEditRequest request) { var product = await _context.Products.FindAsync(request.Id); var productTranslation = await _context.ProductTranslations.FirstOrDefaultAsync(x => x.ProductId == request.Id && x.LanguageId == request.LanguageId); if (product == null || productTranslation == null) { throw new ShoppingException($"Can not find product: {request.Id}"); } productTranslation.Name = request.Name; productTranslation.SeoAlias = request.SeoAlias; productTranslation.SeoDescription = request.SeoDescription; productTranslation.SeoTitle = request.SeoTitle; productTranslation.Description = request.Description; productTranslation.Details = request.Details; //update image if (request.ThumbnailImage != null) { var productImage = await _context.ProductImages.FirstOrDefaultAsync(x => x.IsDefault == true && x.ProductId == request.Id); productImage.FileSize = request.ThumbnailImage.Length; productImage.ImagePath = await this.SaveFile(request.ThumbnailImage); _context.ProductImages.Update(productImage); } return(await _context.SaveChangesAsync()); }
public async Task <ResponseMessage <bool> > ProductEdit([FromBody] ProductEditRequest request) { var response = new ResponseMessage <bool>() { Extension = false }; if (!(request.Files.Count(y => y.IsIcon) >= 0)) { throw new ZCustomizeException(ResponseCodeEnum.ModelStateInvalid, "请设置一张封面图"); } try { if (await _prodoctManager.IsExists(request.Id) || string.IsNullOrWhiteSpace(request.Id)) { response = await _prodoctManager.ProductAddAsync(request, HttpContext.RequestAborted); } else { response = await _prodoctManager.ProductUpdateAsync(request, HttpContext.RequestAborted); } } catch (Exception e) { response.Code = ResponseCodeDefines.ServiceError; response.Message = "编辑商品失败,请重试"; _logger.LogInformation($"编辑商品失败异常:{JsonHelper.ToJson(e)}"); } return(response); }
public async Task <IActionResult> Edit([FromForm] ProductEditRequest request) { var affectedResult = await _manageProductService.edit(request); if (affectedResult == 0) { return(BadRequest()); } return(Ok()); }
public async Task <IActionResult> Update([FromForm] ProductEditRequest request) { var result = await _manageProductService.Update(request); if (result == 0) { return(BadRequest()); } return(Ok()); }
/// <summary> /// 修改 /// </summary> /// <param name="editRequest"></param> /// <returns></returns> public async Task <ResponseMessage <bool> > ProductUpdateAsync(ProductEditRequest editRequest, CancellationToken cancellationToken) { var response = new ResponseMessage <bool>() { Extension = false }; var Product = _mapper.Map <Product>(editRequest); using (var transaction = await _transaction.BeginTransaction()) { try { //存在修改图片 先判断原来是否有图片 存在判断是否有修改 对比异常 删除原理和新增现有数据? var oldfile = await _filesStore.IQueryableListAsync().Where(item => !item.IsDeleted && item.ProductId == editRequest.Id).Select(img => img.Url).ToListAsync(); //1,5,4,3 var newfile = editRequest.Files.Select(y => y.Url); //1,2,3,4 //求差集 TODO 待测试 var except = oldfile.Except(newfile).ToList(); //2 if (except.Any()) { var photo = new List <Files>() { }; except.ForEach(file => { photo.Add(new Files { Id = Guid.NewGuid().ToString(), IsDeleted = false, Url = file, ProductId = editRequest.Id }); }); await _filesStore.AddRangeEntityAsync(photo); } if (await _ProductStore.PutEntityAsync(Product.Id, Product)) { response.Extension = true; } await transaction.CommitAsync(cancellationToken); } catch (Exception e) { await transaction.RollbackAsync(cancellationToken); throw e; } } return(response); }
public async Task <IActionResult> EditProduct([FromBody] ProductEditRequest request, [FromForm] ProductEditRequest request2) { if (!ModelState.IsValid) { return(StatusCode(400)); } var dto = _mapper.Map <ProductEditDTO>(request); if (await _manager.EditProduct(dto)) { return(StatusCode(201)); } throw new Exception(); }
/// <summary> /// 新增 /// </summary> /// <param name="editRequest"></param> /// <returns></returns> public async Task <ResponseMessage <bool> > ProductAddAsync(ProductEditRequest editRequest, CancellationToken cancellationToken) { var response = new ResponseMessage <bool>() { Extension = false }; if (editRequest == null) { throw new ArgumentNullException(); } using (var transaction = await _transaction.BeginTransaction()) { try { var product = _mapper.Map <Product>(editRequest); product.Id = Guid.NewGuid().ToString(); product.Icon = editRequest.Files.Where(item => item.IsIcon).SingleOrDefault().Url; //新增图片 var images = new List <Files> { }; editRequest.Files.ForEach(img => { images.Add(new Files { IsDeleted = false, Id = Guid.NewGuid().ToString(), Url = img.Url, IsIcon = img.IsIcon, ProductId = product.Id }); }); await _filesStore.AddRangeEntityAsync(images); response.Extension = await _ProductStore.AddEntityAsync(product); await transaction.CommitAsync(cancellationToken); } catch (Exception e) { await transaction.RollbackAsync(cancellationToken); throw e; } } return(response); }
public async Task <IActionResult> ProductEdit(int id, ProductEditRequest request) { if (!ModelState.IsValid) { return(StatusCode(400)); } var identityClaimNum = int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value); var dto = _mapper.Map <ProductEditDTO>(request); if (await _manager.ProductEdit(dto)) { return(StatusCode(201)); } throw new Exception(); }
public async Task <int> edit(ProductEditRequest request) { var product = await _context.Products.FindAsync(request.Id); var productTranslations = await _context.ProductTranslations.FirstOrDefaultAsync(x => x.ProductId == request.Id && x.LanguageId == request.LanguageId); if (product == null || productTranslations == null) { throw new EShopException($"Cannot Find A Product With Id : {request.Id}"); } productTranslations.Name = request.Name; productTranslations.SeoAlias = request.SeoAlias; productTranslations.SeoDescription = request.SeoDescription; productTranslations.SeoTitle = request.SeoTitle; productTranslations.Description = request.Description; productTranslations.Details = request.Details; return(await _context.SaveChangesAsync()); }
public async Task <ProductEditResponse> Edit(ProductEditRequest request) { var oldProduct = await _productDataService.Query.IncludeNecessaryData().FirstOrDefaultAsync(x => x.Id == request.Id); if (!HasAccessToManage(oldProduct, request.RequestOwner)) { return new ProductEditResponse() { Access = ResponseAccess.Deny } } ; await _productFacade.UpdateAsync(oldProduct, request.Model); await base.BaseAfterUpdateAsync(oldProduct, request.RequestOwner); return(new ProductEditResponse() { Access = ResponseAccess.Granted, Updated = oldProduct.MapToViewModel() }); }
public async Task <IActionResult> EditProduct(int id, ProductEditRequest request) { if (id == null) { return(NotFound()); } var Data = await _productService.GetProductByIdAsync(id); if (Data != null) { await _productService.UpdateProductAsync(request); return(RedirectToAction("Index")); } if (Data == null) { return(NotFound()); } return(View(Data)); }
/// <summary> /// 获取单条信息 /// </summary> /// <param name="request"></param> /// <returns></returns> public ProductEditResponse EditProduct(ProductEditRequest request) { ProductEditResponse response = new ProductEditResponse(); if (request.PId < 0) { response.Status = false; response.Message = "网络错误"; return(response); } var res = ProductDal.Instance.EditProduct(request.PId); if (res != null) { response.Status = true; response.Message = "请求成功"; response.ProductInfo = res; } return(response); }
public async Task <Product> UpdateProductAsync(ProductEditRequest request) { var product = _mapper.Map <Product>(request); return(await _productRepository.UpdateAsync(product)); }
/// <summary> /// 获取产品单条信息 /// </summary> /// <param name="request"></param> /// <returns></returns> public ProductEditResponse EditProducts(ProductEditRequest request) { return(ApiRequestHelper.Post <ProductEditRequest, ProductEditResponse>(request)); }
public Task <int> Update(ProductEditRequest request) { throw new NotImplementedException(); }
public IActionResult EditProduct([FromBody] ProductEditRequest request) { if (request == null) { return(BadRequest()); } if (request.Price < 0.01M || request.DiscountedPrice < 0) { return(BadRequest("Bad price entered")); } var product = new Product() { Description = request.Description, DisplayName = request.DisplayName, Id = Guid.Parse(request.Id), Price = request.Price, Timestamp = request.Timestamp, DiscountedPrice = request.DiscountedPrice, IsFeatured = request.IsFeatured, IsEnabled = request.IsEnabled }; var imageContext = _dbContext.Set <Image>(); var images = imageContext.Where(x => x.ProductId == product.Id); if (request.Images != null && request.Images.Any()) { imageContext.RemoveRange(images.Where(x => x.Type != ImageTypeEnum.Thumbnail)); if (!string.Equals(request.Images.First(), "delete", StringComparison.InvariantCultureIgnoreCase)) { var mainImage = new Image() { Product = product, ProductId = product.Id, ImageBase64 = request.Images.FirstOrDefault(), Type = ImageTypeEnum.MainImage }; imageContext.Add(mainImage); request.Images.Remove(request.Images.FirstOrDefault()); foreach (var requestImage in request.Images) { imageContext.Add(new Image() { Product = product, ProductId = product.Id, ImageBase64 = requestImage, Type = ImageTypeEnum.OtherImage }); } } } if (!string.IsNullOrEmpty(request.Thumbnail)) { var thumbnail = images.FirstOrDefault(x => x.Type == ImageTypeEnum.Thumbnail); if (string.Equals(request.Thumbnail, "delete", StringComparison.InvariantCultureIgnoreCase)) { if (thumbnail != null) { imageContext.Remove(thumbnail); } } else { if (thumbnail == null) { imageContext.Add(new Image() { Product = product, ProductId = product.Id, ImageBase64 = request.Thumbnail, Type = ImageTypeEnum.Thumbnail }); } else { thumbnail.ImageBase64 = request.Thumbnail; } } } var productAndPcContext = _dbContext.Set <ProductCart>(); if (product.IsEnabled == false) { var pc = productAndPcContext.Where(x => string.Equals(x.ProductId.ToString(), request.Id, StringComparison.InvariantCultureIgnoreCase)); if (pc.Any()) { _dbContext.RemoveRange(pc); } } var productContext = _dbContext.Set <Product>(); try { productContext.Update(product); var result = _dbContext.SaveChanges(); if (result > 0) { product.Images = null; return(Ok(product)); } return(BadRequest("Nothing changed in database")); } catch (DbUpdateConcurrencyException ex) { foreach (var entry in ex.Entries) { if (entry.Entity is Product) { var exception = new List <ConcurrencyConflictResponse>(); var proposedValues = entry.CurrentValues; var databaseValues = entry.GetDatabaseValues(); foreach (var property in proposedValues.Properties) { var proposedValue = proposedValues[property]; var databaseValue = databaseValues[property]; if (proposedValue != databaseValue) { exception.Add(new ConcurrencyConflictResponse() { Property = property.Name, ProposedValue = proposedValue?.ToString(), ActualValue = databaseValue?.ToString() }); } } return(StatusCode(409, exception)); } else { return(BadRequest("Don't know how to handle concurrency conflicts for " + entry.Metadata.Name)); } } } return(BadRequest("Timeout")); }
public ProductEditResponse EditProduct(ProductEditRequest request) { return(ProductBll.Instance.EditProduct(request)); }
public JsonResult EditProduct(ProductEditRequest request) { return(Json(ProductBll.Instance.EditProducts(request))); }