private ProductEditDto Fetch(IDataReader data) { var productEdit = new ProductEditDto(); using (var dr = new SafeDataReader(data)) { if (dr.Read()) { productEdit.ProductId = dr.GetGuid("ProductId"); productEdit.ProductCode = dr.IsDBNull("ProductCode") ? null : dr.GetString("ProductCode"); productEdit.Name = dr.GetString("Name"); productEdit.ProductTypeId = dr.GetInt32("ProductTypeId"); productEdit.UnitCost = dr.GetString("UnitCost"); productEdit.StockByteNull = (byte?)dr.GetValue("StockByteNull"); productEdit.StockByte = dr.GetByte("StockByte"); productEdit.StockShortNull = (short?)dr.GetValue("StockShortNull"); productEdit.StockShort = dr.GetInt16("StockShort"); productEdit.StockIntNull = (int?)dr.GetValue("StockIntNull"); productEdit.StockInt = dr.GetInt32("StockInt"); productEdit.StockLongNull = (long?)dr.GetValue("StockLongNull"); productEdit.StockLong = dr.GetInt64("StockLong"); } FetchChildren(dr); } return(productEdit); }
public async Task <GetProductForEditOutput> GetProductForEdit(NullableIdInput <long> input) { ProductEditDto productEditDto; if (!input.Id.HasValue) { productEditDto = new ProductEditDto() { ProductOptions = new List <ProductOption>() }; } else { IRepository <Product, long> repository = this._productRepository; Product async = await repository.GetAsync(input.Id.Value); productEditDto = async.MapTo <ProductEditDto>(); ProductEditDto productEditDto1 = productEditDto; IRepository <ProductOption, long> repository1 = this._productOptionRepository; List <ProductOption> allListAsync = await repository1.GetAllListAsync((ProductOption x) => x.ProductId == async.Id); productEditDto1.ProductOptions = allListAsync; productEditDto1 = null; } return(new GetProductForEditOutput() { Product = productEditDto }); }
public void Put(string id, ProductEditDto dto) { _activityLog.Post(id, ActivityType.Update); var product = _context.Products.Get(dto.Id); Mapper.Map(dto, product); if (id != product.Id) { return; } _context.Products.Update(product); try { _context.SaveChanges(); } catch (DbUpdateConcurrencyException) { if (_context.Products.GetAllProductsWithCategories().Any(e => e.Id == id)) { throw; } } }
public async Task <IActionResult> EditProduct(int id, ProductEditDto productToEditDto) { if (productToEditDto == null) { return(BadRequest("Sended null product")); } var productFromDb = await _unitOfWork.Product.GetAsync(id); if (productFromDb == null) { return(BadRequest($"Product with Id:{id} not found")); } var selectedCategory = await _unitOfWork.Category.FindAsync(c => c.Id == productToEditDto.CategoryId); var requirementsToUpdate = _mapper.Map <Requirements>(productToEditDto.Requirements); var updatedProduct = await _unitOfWork.Product.ScaffoldProductForEditAsync(id, productToEditDto, requirementsToUpdate, selectedCategory, productFromDb); productFromDb = _mapper.Map(updatedProduct, productFromDb); if (await _unitOfWork.SaveAsync()) { var editedProduct = await _unitOfWork.Product.GetAsync(id); return(CreatedAtRoute("GetProduct", new { id = id }, editedProduct)); } return(BadRequest("Fail occured during editing Product")); }
/// <summary> /// Updates in the database all changes made to the ProductEdit object. /// </summary> /// <param name="productEdit">The Product Edit DTO.</param> /// <returns>The updated <see cref="ProductEditDto"/>.</returns> public ProductEditDto Update(ProductEditDto productEdit) { using (var ctx = ConnectionManager <NpgsqlConnection> .GetManager("Invoices")) { using (var cmd = new NpgsqlCommand("dbo.UpdateProductEdit", ctx.Connection)) { cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.AddWithValue("@ProductId", productEdit.ProductId).DbType = DbType.Guid; cmd.Parameters.AddWithValue("@ProductCode", productEdit.ProductCode == null ? (object)DBNull.Value : productEdit.ProductCode).DbType = DbType.StringFixedLength; cmd.Parameters.AddWithValue("@Name", productEdit.Name).DbType = DbType.String; cmd.Parameters.AddWithValue("@ProductTypeId", productEdit.ProductTypeId).DbType = DbType.Int32; cmd.Parameters.AddWithValue("@UnitCost", productEdit.UnitCost).DbType = DbType.StringFixedLength; cmd.Parameters.AddWithValue("@StockByteNull", productEdit.StockByteNull == null ? (object)DBNull.Value : productEdit.StockByteNull.Value).DbType = DbType.Byte; cmd.Parameters.AddWithValue("@StockByte", productEdit.StockByte).DbType = DbType.Byte; cmd.Parameters.AddWithValue("@StockShortNull", productEdit.StockShortNull == null ? (object)DBNull.Value : productEdit.StockShortNull.Value).DbType = DbType.Int16; cmd.Parameters.AddWithValue("@StockShort", productEdit.StockShort).DbType = DbType.Int16; cmd.Parameters.AddWithValue("@StockIntNull", productEdit.StockIntNull == null ? (object)DBNull.Value : productEdit.StockIntNull.Value).DbType = DbType.Int32; cmd.Parameters.AddWithValue("@StockInt", productEdit.StockInt).DbType = DbType.Int32; cmd.Parameters.AddWithValue("@StockLongNull", productEdit.StockLongNull == null ? (object)DBNull.Value : productEdit.StockLongNull.Value).DbType = DbType.Int64; cmd.Parameters.AddWithValue("@StockLong", productEdit.StockLong).DbType = DbType.Int64; var rowsAffected = cmd.ExecuteNonQuery(); if (rowsAffected == 0) { throw new DataNotFoundException("ProductEdit"); } } } return(productEdit); }
/// <summary> /// Inserts a new ProductEdit object in the database. /// </summary> /// <param name="productEdit">The Product Edit DTO.</param> /// <returns>The new <see cref="ProductEditDto"/>.</returns> public ProductEditDto Insert(ProductEditDto productEdit) { using (var ctx = ConnectionManager <SQLiteConnection> .GetManager("Invoices")) { using (var cmd = new SQLiteCommand("dbo.AddProductEdit", ctx.Connection)) { cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.AddWithValue("@ProductId", productEdit.ProductId).DbType = DbType.Guid; cmd.Parameters.AddWithValue("@ProductCode", productEdit.ProductCode == null ? (object)DBNull.Value : productEdit.ProductCode).DbType = DbType.StringFixedLength; cmd.Parameters.AddWithValue("@Name", productEdit.Name).DbType = DbType.String; cmd.Parameters.AddWithValue("@ProductTypeId", productEdit.ProductTypeId).DbType = DbType.Int32; cmd.Parameters.AddWithValue("@UnitCost", productEdit.UnitCost).DbType = DbType.StringFixedLength; cmd.Parameters.AddWithValue("@StockByteNull", productEdit.StockByteNull == null ? (object)DBNull.Value : productEdit.StockByteNull.Value).DbType = DbType.Byte; cmd.Parameters.AddWithValue("@StockByte", productEdit.StockByte).DbType = DbType.Byte; cmd.Parameters.AddWithValue("@StockShortNull", productEdit.StockShortNull == null ? (object)DBNull.Value : productEdit.StockShortNull.Value).DbType = DbType.Int16; cmd.Parameters.AddWithValue("@StockShort", productEdit.StockShort).DbType = DbType.Int16; cmd.Parameters.AddWithValue("@StockIntNull", productEdit.StockIntNull == null ? (object)DBNull.Value : productEdit.StockIntNull.Value).DbType = DbType.Int32; cmd.Parameters.AddWithValue("@StockInt", productEdit.StockInt).DbType = DbType.Int32; cmd.Parameters.AddWithValue("@StockLongNull", productEdit.StockLongNull == null ? (object)DBNull.Value : productEdit.StockLongNull.Value).DbType = DbType.Int64; cmd.Parameters.AddWithValue("@StockLong", productEdit.StockLong).DbType = DbType.Int64; cmd.ExecuteNonQuery(); } } return(productEdit); }
public ProductDetailsDto Post(ProductEditDto dto) { _logger.LogDebug(LoggingEvents.UpdateItem, "Спроба додати новий товар."); var product = new Product(); Mapper.Map(dto, product); try { var category = _db.ProductCategories.SingleOrDefault(s => s.Id == product.ProductCategoryId); var products = _db.Products; product.Article = SequenceId(products, category.SequenceId); if (products.ToList().Any(o => o.Article == product.Article)) { _logger.LogWarning(LoggingEvents.CreateItemErorr, "Товар з таким арикулом вже існує, повтрюю спробу створити товар"); Post(dto); } _context.Products.Add(product); _context.SaveChanges(); _activityLog.Post(product.Id, ActivityType.Create); _logger.LogInformation(LoggingEvents.CreateItemSuccess, "Товар додано успішно!", product); } catch (Exception e) { _logger.LogError(LoggingEvents.CreateItemErorr, e, $"Виникла помилка при створенні нового товару {Utilities.ModelToJson(product)}"); } return(Mapper.Map <ProductDetailsDto>(product)); }
public async Task <ProductDto> Save(ProductEditDto itemToEdit) { Product res; if (itemToEdit.Id != Guid.Empty) { _logger.LogDebug($"Calling Update Product for id=[{itemToEdit.Id}]"); //edit res = await this.GetInner(itemToEdit.Id); if (res == null) { throw new NotFoundException($"Product with id={itemToEdit.Id} not exists!"); } res.Name = itemToEdit.Name; res.Description = itemToEdit.Description; res.CategoryName = itemToEdit.CategoryName; res.IdTeacher = itemToEdit.IdTeacher; res.EndDate = itemToEdit.EndDate; res.StartDate = itemToEdit.StartDate; _dbCtx.Products.Update(res); _dbCtx.SaveChanges(); } else { //insert res = itemToEdit.ToEntity(); res.Id = Guid.NewGuid(); _logger.LogDebug($"Calling Insert Product for id=[{res.Id}] (temp id, not created yet!)"); await _dbCtx.Products.AddAsync(res); _dbCtx.SaveChanges(); } return(res.ToDto()); }
protected override void DataPortal_Update() { var dto = new ProductEditDto(); dto.ProductId = ProductId; dto.ProductCode = ProductCode; dto.Name = Name; dto.ProductTypeId = ProductTypeId; dto.UnitCost = UnitCost; dto.StockByteNull = StockByteNull; dto.StockByte = StockByte; dto.StockShortNull = StockShortNull; dto.StockShort = StockShort; dto.StockIntNull = StockIntNull; dto.StockInt = StockInt; dto.StockLongNull = StockLongNull; dto.StockLong = StockLong; using (var dalManager = DalFactoryInvoices.GetManager()) { var args = new DataPortalHookArgs(dto); OnUpdatePre(args); var dal = dalManager.GetProvider <IProductEditDal>(); using (BypassPropertyChecks) { var resultDto = dal.Update(dto); args = new DataPortalHookArgs(resultDto); } OnUpdatePost(args); // flushes all pending data operations FieldManager.UpdateChildren(this); } }
/// <summary> /// 添加或者修改Product的方法 /// </summary> /// <param name="input"></param> /// <returns></returns> public async Task <ProductListDto> CreateOrUpdateProductDto(ProductEditDto input) { string webRootPath = _hostingEnvironment.WebRootPath; if (!string.IsNullOrEmpty(input.Img64) && !string.IsNullOrEmpty(input.FileName)) { var base64 = new WechatImgBase64() { fileName = input.FileName, imageBase64 = input.Img64 }; var photoUrl = await FilesPostsBase64(base64, "product"); input.PhotoUrl = !string.IsNullOrEmpty(photoUrl) ? photoUrl : input.PhotoUrl; } if (input.Id.HasValue) { var entity = _productRepository.GetAsync(input.Id.MapTo <Guid>()).Result; var url = entity.PhotoUrl; var result = await UpdateProductAsync(input); //删除原来的单个图片 if (url != result.PhotoUrl && url != "/assets/img/default.png") { if (File.Exists(webRootPath + url)) { File.Delete(webRootPath + url); } } return(result); } else { return(await CreateProductAsync(input)); } }
/// <summary> /// 新增Product /// </summary> protected virtual async Task <ProductEditDto> Create(ProductEditDto input) { var entity = input.MapTo <Product>(); var id = await _entityRepository.InsertAndGetIdAsync(entity); return(entity.MapTo <ProductEditDto>()); }
protected virtual async Task Update(ProductEditDto input) { //TODO:更新前的逻辑判断,是否允许更新 if (!input.CreateProjectCount.HasValue || input.CreateProjectCount.Value < 0) { throw new UserFriendlyException("项目创建次数必须大于等于0"); } if (!input.Price.HasValue || input.Price.Value < 0) { throw new UserFriendlyException("产品价格必须大于等于0"); } //if (!input.Indate.HasValue || input.Indate.Value < 0) //{ // throw new UserFriendlyException("有效天数必须大于等于0"); //} var entity = await _entityRepository.GetAsync(input.Id.Value); if (entity.Published) { throw new UserFriendlyException("产品已经发布,禁止修改!"); } // 产品编码不允许被修改,直接使用原有编码进行覆盖,防止操作dom和模拟post修改 input.Code = entity.Code; // input.MapTo(entity); ObjectMapper.Map(input, entity); await _entityRepository.UpdateAsync(entity); }
protected virtual async Task <ProductEditDto> Create(ProductEditDto input) { //TODO:新增前的逻辑判断,是否允许新增 if (!input.CreateProjectCount.HasValue || input.CreateProjectCount.Value < 0) { throw new UserFriendlyException("项目创建次数必须大于等于0"); } if (!input.Price.HasValue || input.Price.Value < 0) { throw new UserFriendlyException("产品价格必须大于等于0"); } //if (!input.Indate.HasValue || input.Indate.Value < 0) //{ // throw new UserFriendlyException("有效天数必须大于等于0"); //} var entity = ObjectMapper.Map <Product>(input); // var entity = input.MapTo<Product>(); // 生成产品编码 entity.Code = ProductCodeGen.GetCode((int)entity.Type.ToEnum <DownloadTypeEnum>(true), AbpSession.UserId.Value); entity = await _entityRepository.InsertAsync(entity); return(ObjectMapper.Map <ProductEditDto>(entity)); }
protected virtual async Task <ProductEditDto> CreateProductAsync(ProductEditDto input) { var entity = ObjectMapper.Map <Product>(input); entity = await _productRepository.InsertAsync(entity); return(entity.MapTo <ProductEditDto>()); }
/// <summary> /// 新增产品 /// </summary> public virtual async Task <ProductEditDto> CreateProductAsync(ProductEditDto input) { var entity = input.MapTo <Product>(); entity = await _productRepository.InsertAsync(entity); return(entity.MapTo <ProductEditDto>()); }
/// <summary> /// 编辑产品 /// </summary> public virtual async Task UpdateProductAsync(ProductEditDto input) { var entity = await _productRepository.GetAsync(input.Id.Value); input.MapTo(entity); await _productRepository.UpdateAsync(entity); }
public ProductEditDto CreateMission(ProductEditDto input) { var task = AutoMapper.Mapper.Map <Product>(input); var entity = _entityRepository.Insert(task); CurrentUnitOfWork.SaveChanges(); return(AutoMapper.Mapper.Map <ProductEditDto>(entity)); }
protected virtual async Task UpdateProductAsync(ProductEditDto input) { var entity = await _productRepository.GetAsync(input.Id.Value); input.MapTo(entity); // ObjectMapper.Map(input, entity); await _productRepository.UpdateAsync(entity); }
/// <summary> /// 编辑Product /// </summary> protected virtual async Task <ProductEditDto> Update(ProductEditDto input) { var entity = await _entityRepository.GetAsync(input.Id.Value); input.MapTo(entity); await _entityRepository.UpdateAsync(entity); return(entity.MapTo <ProductEditDto>()); }
public async Task <ActionResult <ProductDto> > Put([FromBody] ProductEditDto value) { if (value.Id == Guid.Empty) { throw new Exception("Unable to edit a Product without ID"); } var res = await _service.Save(value); return(res); }
/// <summary> /// 新增Product /// </summary> //[AbpAuthorize(ProductAppPermissions.Product_CreateProduct)] protected virtual async Task <ProductListDto> CreateProductAsync(ProductEditDto input) { //TODO:新增前的逻辑判断,是否允许新增 var entity = ObjectMapper.Map <Product>(input); entity.SearchCount = 0; entity = await _productRepository.InsertAsync(entity); return(entity.MapTo <ProductListDto>()); }
public IActionResult Put([FromRoute] string id, [FromBody] ProductEditDto product) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } _service.Put(id, product); return(Accepted()); }
/// <summary> /// 添加或者修改Product的公共方法 /// </summary> /// <param name="input"></param> /// <returns></returns> public async Task <ProductEditDto> CreateOrUpdateProductAsync(ProductEditDto input) { if (input.Id.HasValue) { return(await Update(input)); } else { return(await Create(input)); } }
public async Task <bool> Update(ProductEditDto input) { var orignal = await _context.Products.SingleOrDefaultAsync(s => s.Id == input.Id); var MappedProduct = _mapper.Map(input, orignal); var UpdatedProduct = _context.Products.Update(MappedProduct); var res = await _context.SaveChangesAsync(); return(res > 0 ? true : false); }
protected virtual async Task Update(ProductEditDto input) { //TODO:更新前的逻辑判断,是否允许更新 var entity = await _entityRepository.GetAsync(input.Id.Value); input.MapTo(entity); // ObjectMapper.Map(input, entity); await _entityRepository.UpdateAsync(entity); }
/// <summary> /// 编辑Product /// </summary> //[AbpAuthorize(ProductAppPermissions.Product_EditProduct)] protected virtual async Task <ProductListDto> UpdateProductAsync(ProductEditDto input) { //TODO:更新前的逻辑判断,是否允许更新 var entity = await _productRepository.GetAsync(input.Id.Value); input.MapTo(entity); // ObjectMapper.Map(input, entity); var result = await _productRepository.UpdateAsync(entity); return(result.MapTo <ProductListDto>()); }
protected virtual async Task <ProductEditDto> Create(ProductEditDto input) { //TODO:新增前的逻辑判断,是否允许新增 // var entity = ObjectMapper.Map <Product>(input); var entity = input.MapTo <Product>(); entity = await _entityRepository.InsertAsync(entity); return(entity.MapTo <ProductEditDto>()); }
/// <summary> /// 更新商品标签 /// </summary> /// <param name="input"></param> /// <returns></returns> public async Task <ProductListDto> CreateOrUpdateProductLable(ProductEditDto input) { var entity = await _entityRepository.GetAsync(input.Id.Value); entity.Lable = input.Lable; if (string.IsNullOrEmpty(input.Lable)) { entity.Lable = null; } var result = await _entityRepository.UpdateAsync(entity); return(result.MapTo <ProductListDto>()); }
public IActionResult Edit(Guid id) { var originalProduct = _productsServiceClient.GetProductById(id); var product = new ProductEditDto { Id = originalProduct.Id, Name = originalProduct.Name, Price = originalProduct.Price }; return(View(product)); }
public ProductEditDto UpdateMission(ProductEditDto input) { // var task = _AfficheRepository.GetAll().FirstOrDefault(t => t.CargoID == input.CargoID); var task = AutoMapper.Mapper.Map <Product>(input); //_entityRepository.Update(task); //if (result != null) //{ _AfficheRepository.Update(result); } var entity = _entityRepository.Update(task); CurrentUnitOfWork.SaveChanges(); return(AutoMapper.Mapper.Map <ProductEditDto>(entity)); }