public IActionResult ModifiedProductsById(int id, [FromBody] Product product) { var products = new Product(); ProductWebApiContext productWebApiContext = new ProductWebApiContext(conn.DefaultConnection); if (product == null) { return(BadRequest()); } if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (id != 0) { products = (from p in productWebApiContext.Product where p.Id == id select p).FirstOrDefault(); if (products != null) { products.Name = product.Name; products.Price = product.Price; } productWebApiContext.SaveChanges(); } return(Ok(products)); }
public IActionResult InsertProductsAndMaterials([FromBody] ProductMaterialInput input) { ProductWebApiContext productWebApiContext = new ProductWebApiContext(conn.DefaultConnection); if (input == null) { return(BadRequest()); } if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var maxId = (from p in productWebApiContext.Product select p.Id).Max(); var newProduct = new Product { Id = ++maxId, Name = input.Name, Price = input.Price, }; var maxMaterialId = (from m in productWebApiContext.Material select m.Id).Max(); var newMaterial = new Material { Id = ++maxMaterialId, Name = input.Materials.First().Name, ProductId = maxId }; productWebApiContext.Add(newProduct); productWebApiContext.Add(newMaterial); productWebApiContext.SaveChanges(); return(Ok(newProduct)); }
public async Task <IActionResult> GetProducts(ResourceParameter parameter) { log.Info("获取所有的产品list"); List <Product> products = new List <Product>(); var query = products.AsQueryable(); int count = 0; try { if (!_propertyMappingContainer.ValidMappingExistsFor <ResourceParameter, Product>(parameter.OrderBy)) { return(BadRequest("找不到要排序的字段")); } ProductWebApiContext productWebApiContext = new ProductWebApiContext(conn.DefaultConnection); var propertiesMap = new Dictionary <string, Expression <Func <Product, object> > > { { "Id", p => p.Id }, { "Name", p => p.Name }, { "Price", p => p.Price } }; if (!string.IsNullOrEmpty(parameter.Name)) { query = (from p in productWebApiContext.Product where p.Name.Contains(parameter.Name) select p) .AsQueryable(); count = await(from p in productWebApiContext.Product where p.Name.Contains(parameter.Name) select p).CountAsync(); } else { query = (from p in productWebApiContext.Product select p) .AsQueryable(); count = await(from p in productWebApiContext.Product select p).CountAsync(); } query = query.ApplySort(parameter.OrderBy, _propertyMappingContainer.Resolve <ResourceParameter, Product>()); products = query.Skip(parameter.PageIndex * parameter.PageSize).Take(parameter.PageSize).ToList(); var returnlist = new PaginatedList <Product>(parameter.PageIndex, parameter.PageSize, count, products); var preLink = returnlist.HasPrevious ? new CreateProductResourceUrl(_urlHelper).CreateResouceUrl(parameter, PaginationResourceUriType.PreviousPage, "GetProducts"):null; var nextLink = returnlist.HasNext ? new CreateProductResourceUrl(_urlHelper).CreateResouceUrl(parameter, PaginationResourceUriType.NextPage, "GetProducts") : null; var mata = new { returnlist.TotalItemsCount, returnlist.PaginationBase.PageSize, returnlist.PaginationBase.PageIndex, returnlist.PageCount, preLink, nextLink }; Response.Headers.Add("X-Pagination", JsonConvert.SerializeObject(mata)); } catch (Exception e) { log.Error(e); } return(Ok(products)); }
public IActionResult GetProductByid(int id) { ProductWebApiContext productWebApiContext = new ProductWebApiContext(conn.DefaultConnection); //List<Product> products = (from p in productWebApiContext.Product where p.Id==id select p).ToList(); var products = (from p in productWebApiContext.Product where p.Id == id select p).ToList(); if (products.Count == 0) { return(NotFound()); } return(Ok(products)); }
public async Task <IActionResult> DeleteProductsById(int productid) { ProductWebApiContext productWebApiContext = new ProductWebApiContext(conn.DefaultConnection); var product = await(from p in productWebApiContext.Product where p.Id == productid select p).ToListAsync(); if (product == null) { return(NotFound()); } productWebApiContext.Remove(product.FirstOrDefault()); if (await productWebApiContext.SaveChangesAsync() <= 0) { return(StatusCode(500, $"删除产品{product.First().Id}失败")); } return(NoContent()); }
public IActionResult GetProductAndMaterial(int productid, int materialid) { ProductWebApiContext productWebApiContext = new ProductWebApiContext(conn.DefaultConnection); //List<Product> products = (from p in productWebApiContext.Product where p.Id==id select p).ToList(); var products = (from p in productWebApiContext.Product join m in productWebApiContext.Material on p.Id equals m.ProductId where p.Id == productid select new { Product = p, Material = m }).ToList(); //var materials = (from m in productWebApiContext.Material where m.ProductId == productid && m.Id == materialid select m); if (products.Count == 0) { return(NotFound()); } return(Ok(products)); }
public IActionResult DeleteMaterialById(int productid, int materialid) { ProductWebApiContext productWebApiContext = new ProductWebApiContext(conn.DefaultConnection); var product = (from p in productWebApiContext.Product where p.Id == productid select p).FirstOrDefault(); if (product == null) { return(NotFound()); } var material = (from m in productWebApiContext.Material where m.Id == materialid select m).FirstOrDefault(); if (material == null) { return(NotFound()); } productWebApiContext.Remove(material); productWebApiContext.SaveChanges(); return(Ok()); }
public IActionResult InsertProductsCollection([FromBody] IEnumerable <Product> products) { ProductWebApiContext productWebApiContext = new ProductWebApiContext(conn.DefaultConnection); if (products == null) { return(BadRequest()); } foreach (var product in products) { var maxId = (from p in productWebApiContext.Product select p.Id).Max(); var newProduct = new Product { Id = ++maxId, Name = product.Name, Price = product.Price, }; productWebApiContext.Add(newProduct); productWebApiContext.SaveChanges(); } return(Ok()); }
public IActionResult InsertProductsById([FromBody] Product product) { ProductWebApiContext productWebApiContext = new ProductWebApiContext(conn.DefaultConnection); if (product == null) { return(BadRequest()); } if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var maxId = (from p in productWebApiContext.Product select p.Id).Max(); var newProduct = new Product { Id = ++maxId, Name = product.Name, Price = product.Price, }; productWebApiContext.Add(newProduct); productWebApiContext.SaveChanges(); return(Ok(newProduct)); }