public IActionResult Post([FromBody] ProductCreation product) { if (product == null) { return(BadRequest()); } if (product.Name == "产品") { ModelState.AddModelError("Name", "产品的名称不可以是'产品'二字"); } if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var newProduct = Mapper.Map <Product>(product); _productRepository.AddProduct(newProduct); if (!_productRepository.Save()) { return(StatusCode(500, "保存产品的时候出错")); } var dto = Mapper.Map <ProductWithoutMaterialDto>(newProduct); return(CreatedAtRoute("GetProduct", new { id = dto.Id }, dto)); }
public IActionResult Post([FromBody] ProductCreation product) { if (product == null) { return(BadRequest()); } if (product.Name == "产品") { ModelState.AddModelError("Name", "产品的名称不可以是'产品'二字"); } if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var maxId = ProductService.Current.Products.Max(x => x.Id); var newProduct = new ProductDto { Id = ++maxId, Name = product.Name, Price = product.Price, Description = product.Description }; ProductService.Current.Products.Add(newProduct); return(CreatedAtRoute("GetProduct", new { id = newProduct.Id }, newProduct)); }
public IActionResult Create([FromBody] ProductCreation product) { if (product != null) { if (ModelState.IsValid) { var maxId = ProductService.Current.products.Max(x => x.Id); var newProduct = new Products { Id = ++maxId, Name = product.Name, Price = product.Price, Description = product.Description }; //addproduct ProductService.Current.products.Add(newProduct); return(CreatedAtRoute("GetProduct", new { id = newProduct.Id }, newProduct)); } return(BadRequest(ModelState)); } return(BadRequest()); }
public IActionResult Post([FromBody] ProductCreation product) { if (product == null) { _logger.LogInformation($"product参数为空"); return(BadRequest()); } if (product.Name.Equals("产品")) { ModelState.AddModelError("Name", "产品的名称不能是\"产品\"二字"); } // validation if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var newProduct = new Product { Id = _productService.NewId, Name = product.Name, Price = product.Price }; _productService.Add(newProduct); return(CreatedAtRoute("GetProduct", new { id = newProduct.Id }, newProduct)); }
public IActionResult Post([FromBody] ProductCreation product) //[FromBody] , 请求的body里面包含着方法需要的实体数据, 方法需要把这个数据Deserialize成ProductCreation, [FromBody]就是干这些活的. { if (product == null) { return(BadRequest()); } //对请求过来的数据进行验证(与模型上的一样可以在ModelState 验证) if (product.Name == "产品") { ModelState.AddModelError("Name", "产品的名称不可以是'产品'二字"); } //模型验证问题 模型规则已在模型特性上加上 如果没通过那么返回BadRequest if (!ModelState.IsValid) { return(BadRequest(ModelState));//ModelState: 是一个Dictionary, 它里面是请求提交到Action的Name和Value的对们, 一个name对应着model的一个属性, 它也包含了一个针对每个提交的属性的错误信息的集合. } var maxId = ProductService.Current.Products.Max(x => x.Id); var newProduct = new Product { Id = ++maxId, Name = product.Name, Price = product.Price, Description = product.Description }; ProductService.Current.Products.Add(newProduct); return(CreatedAtRoute("GetProduct", new { id = newProduct.Id }, newProduct));//返回指定名字路由 第二个参数为对应方法参数 ,第三个参数为实体数据 }
public IActionResult Post([FromBody] ProductCreation product) { if (product == null) { return(BadRequest()); } if (product.Name == "你妹") { // 后期用FluentValidation实现验证逻辑 ModelState.AddModelError("Name", "你妹咯!"); } if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var newProduct = Mapper.Map <Product>(product); _productRepository.AddProduct(newProduct); if (!_productRepository.Save()) { _logger.LogCritical($"【保存产品{product.Name}的时候出错】"); return(StatusCode(500, "保存产品的时候出错")); } var dto = Mapper.Map <ProductWithoutMaterialDto>(newProduct); return(CreatedAtRoute("GetProduct", new { id = dto.Id }, dto)); }
public IActionResult AddProduct([FromForm] ProductCreation product) { if (product == null) { return(BadRequest()); } if (!ModelState.IsValid) { return(BadRequest(ModelState)); } return(new JsonResult(new { isSuccess = true })); }
public IActionResult Post(ProductCreation product) { //验证数据合法性 if (product == null) { return(BadRequest()); } //验证字段 if (ModelState.IsValid) { //insert return(CreatedAtRoute("", "", "'")); } return(BadRequest(ModelState)); }
public IActionResult CreateProduct([FromBody] ProductCreation product) { var maxProductId = ProductsDataStore.Current.Products.Max(p => p.Id); var newProduct = new ProductDto() { Id = ++maxProductId, Name = product.Name, Price = product.Price }; ProductsDataStore.Current.Products.Add(newProduct); var productToReturn = ProductsDataStore.Current.Products.FirstOrDefault(c => c.Id == newProduct.Id); return(Ok(productToReturn)); }
public IActionResult Post([FromBody] ProductCreation product) { if (product == null) { return(BadRequest()); } //Data Annotation if (!ModelState.IsValid) { return(BadRequest(ModelState)); } //复杂验证,自定义 if (product.Name == "name") { ModelState.AddModelError("Name", "产品名称不能是‘name’"); return(BadRequest(ModelState)); } ////获取目前存在的最大id //var maxId = ProductService.Current().Products.Max(t => t.Id); //var newProduct = new ProductDto //{ // Id = ++maxId, // Name = product.Name, // Price = product.Price, // Description = product.Description //}; //ProductService.Current().Products.Add(newProduct); var newProduct = Mapper.Map <Product>(product); _productRepository.AddProduct(newProduct); if (!_productRepository.Save()) { return(StatusCode(500, "保存产品的时候出错")); } var dto = Mapper.Map <ProductWithoutMaterialDto>(newProduct); //return CreatedAtRoute("GetProduct", new { id = newProduct.Id }, newProduct); return(CreatedAtRoute("GetProduct", new { id = dto.Id }, dto)); }
public IActionResult Post([FromForm] ProductCreation product) { var uniqfilename = "defult.png"; if (product.Photo != null) { uniqfilename = UplodFile(product.Photo); } var productToAdd = new Product() { Name = product.Name, LastUpdated = DateTime.UtcNow, Price = product.Price, PhotoPath = uniqfilename, }; var prop = _reboproducts.Add(productToAdd); return(Ok(prop)); }
public IActionResult Post([FromBody] ProductCreation product) { if (product == null) { return(BadRequest()); } if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var maxId = ProductService.CurrentProducts.Products.Max(x => x.Id); var newProduct = new Product { Id = ++maxId, Name = product.Name, Price = product.Price }; ProductService.CurrentProducts.Products.Add(newProduct); return(CreatedAtRoute("GetProduct", new { id = newProduct.Id }, newProduct)); }
//FromBody 请求的body里面包含着方法需要的实体数据,方法需要把这个数据 Deserialize 成ProductCreation public IActionResult Post([FromBody] ProductCreation product) { if (product == null) { return(BadRequest()); } if (!ModelState.IsValid) { //这里的ModelState 是一个Dictionary return(BadRequest(ModelState)); } if (product.Name == "产品") { ModelState.AddModelError("Name", "产品的名称不可以是'产品'二字"); return(BadRequest(ModelState)); } //var maxId = ProductService.Current.Products.Max(x => x.Id); //var newProduct = new ProductDto //{ // Id = ++maxId, // Name = product.Name, // Price = product.Price, // Description = product.Description //}; //ProductService.Current.Products.Add(newProduct); var newProduct = Mapper.Map <Product>(product); _productRepository.AddProduct(newProduct); if (!_productRepository.Save()) { return(StatusCode(500, "保存产品的时候出错!!")); } var dto = Mapper.Map <ProductWithoutMaterialDto>(newProduct); return(CreatedAtRoute("GetProduct", new { id = dto.Id }, dto)); }
public void SincronizaProdutos() { RefreshToken(); var products = _productService.SearchProducts(categoryIds: null, pageSize: int.MaxValue, showHidden: true); ProductResponse[] GetProductResponse = null; ProductResponse ProductResponse = null; CategoryResponse[] CategoryResponse = null; var ContaAzulMiscSettings = _settingService.LoadSetting <ContaAzulMiscSettings>(); foreach (var item in products) { var product = new ProductMessage(); var categoria = "?name=Mercadoria para Revenda"; //busca a categoria no conta azul para obter o id: using (var getcategory = new GetCategory(ContaAzulMiscSettings.UseSandbox)) CategoryResponse = getcategory.CreateAsync(ContaAzulMiscSettings.access_token, categoria).ConfigureAwait(false).GetAwaiter().GetResult(); // var categoria = _categoryService.GetProductCategoryById(item.Id); product.name = item.Name; product.value = Math.Round(item.Price, 1); product.cost = Math.Round(item.ProductCost); product.available_stock = item.StockQuantity; product.net_weight = Math.Round(item.Weight, 3); product.category_id = CategoryResponse[0].id; product.gross_weight = Math.Round(item.Weight, 3); try { var filtro = "?name=" + item.Name; using (var getproduct = new GetProduct(ContaAzulMiscSettings.UseSandbox)) GetProductResponse = getproduct.CreateAsync(null, ContaAzulMiscSettings.access_token, filtro).ConfigureAwait(false).GetAwaiter().GetResult(); if (GetProductResponse.Count() > 0) { var productTable = _contaAzulProductService.GetProduct(GetProductResponse[0]); //caso ele não exista na tabela relacional do banco, insere e atualiza no conta azul if (productTable == null) { using (var productCreation = new ProductCreation(ContaAzulMiscSettings.UseSandbox)) ProductResponse = productCreation.CreateAsyncUpdate(product, GetProductResponse[0].id.ToString(), ContaAzulMiscSettings.access_token).ConfigureAwait(false).GetAwaiter().GetResult(); if (ProductResponse != null) { var productContaAzul = new ProductContaAzul(); productContaAzul.ContaAzulId = ProductResponse.id; productContaAzul.ProductId = item.Id; productContaAzul.DataCriacao = DateTime.Now; _contaAzulProductService.InsertProduct(productContaAzul); } } else {//caso já existe no banco, só verifica se houve alteração e faz o update no conta azul product.id = productTable.ContaAzulId.ToString(); var objetoContaAzul = JsonConvert.SerializeObject(GetProductResponse[0]); var objetoAtualizar = JsonConvert.SerializeObject(product); var data = objetoAtualizar.Equals(objetoContaAzul); if (!objetoAtualizar.Equals(objetoContaAzul)) { using (var productCreation = new ProductCreation(ContaAzulMiscSettings.UseSandbox)) ProductResponse = productCreation.CreateAsyncUpdate(product, productTable.ContaAzulId.ToString(), ContaAzulMiscSettings.access_token).ConfigureAwait(false).GetAwaiter().GetResult(); } } } else {//caso ele não exista no conta azul, faz a inserção dele no conta azul e no banco de dados var data2 = JsonConvert.SerializeObject(product); using (var productCreation = new ProductCreation(ContaAzulMiscSettings.UseSandbox)) ProductResponse = productCreation.CreateAsync(product, ContaAzulMiscSettings.access_token).ConfigureAwait(false).GetAwaiter().GetResult(); if (ProductResponse != null) { var productContaAzul = new ProductContaAzul(); productContaAzul.ContaAzulId = ProductResponse.id; productContaAzul.ProductId = item.Id; productContaAzul.DataCriacao = DateTime.Now; _contaAzulProductService.InsertProduct(productContaAzul); } } } catch (Exception ex) { _logger.Error(ex.Message, ex); } } }