public async Task <IActionResult> PutOrder([FromRoute] long id, [FromBody] Order order) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (id != order.Id) { return(BadRequest()); } _context.Entry(order).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!OrderExists(id)) { return(NotFound()); } else { throw; } } return(NoContent()); }
public async Task <IActionResult> PutProduct([FromRoute] long id, [FromBody] ProductToUpdateDTO productDTO) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var product = await _context.Products.FirstOrDefaultAsync(p => p.Id == id); Mapper.Map(productDTO, product); //product.Label = productDto.Label; //product.Price = productDto.Price; //product.Available = productDto.Available; //product.ImageUri = productDto.ImageUri; try { if (await _context.SaveChangesAsync() == 0) { return(StatusCode(500, "A problem happened while handling your request.")); } } catch (DbUpdateConcurrencyException) { if (!ProductExists(id)) { return(NotFound()); } return(StatusCode(500, $"Simultaneously attempt to modify {nameof(Product)} entity.")); } return(NoContent()); }
public async Task <IActionResult> PutManufacturer(int id, Manufacturer manufacturer) { if (id != manufacturer.Id) { return(BadRequest()); } if (manufacturer.Name == "") { return(BadRequest("Manufacturer name can't be empty!")); } if (_context.Manufacturers.Any(m => m.Id != id && m.Name == manufacturer.Name)) { return(BadRequest("Manufacturer name is already taken!")); } _context.Entry(manufacturer).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!ManufacturerExists(id)) { return(NotFound()); } else { throw; } } return(NoContent()); }
public async Task <IActionResult> PutCustomer([FromRoute] long id, [FromBody] CustomerToUpdateDTO customerDTO) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var customer = await _context.Customers.FirstOrDefaultAsync(c => c.Id == id); Mapper.Map(customerDTO, customer); try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!CustomerExists(id)) { return(NotFound()); } return(StatusCode(500, $"Simultaneously attempt to modify {nameof(Customer)} entity.")); } return(NoContent()); }
public async Task <IActionResult> PutCategory(int id, Category category) { if (id != category.Id) { return(BadRequest()); } _context.Entry(category).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!CategoryExists(id)) { return(NotFound()); } else { throw; } } return(NoContent()); }
public async Task <IActionResult> PutItem(int id, Item item) { if (id != item.Id) { return(BadRequest()); } if (_context.Items.Any(i => i.Id != id && i.Name == item.Name)) { return(BadRequest("Item name is already taken!")); } _context.Entry(item).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!ItemExists(id)) { return(NotFound()); } else { throw; } } return(NoContent()); }
public async Task <IActionResult> Create([Bind("ID,Name,Price,Unit,ExpiryDate")] Product product) { if (ModelState.IsValid) { _context.Add(product); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } return(View(product)); }
public async Task <ActionResult <Page> > PutPage(Guid id, Page page) { if (page.Id != id) { return(BadRequest()); } _context.Entry(page).State = EntityState.Modified; await _context.SaveChangesAsync(); return(NoContent()); }
public async Task <IActionResult> Create([Bind("Id,Name,Description,Price")] Product product) { if (ModelState.IsValid) { product.Id = Guid.NewGuid(); _context.Add(product); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } return(View(product)); }
public async Task <IActionResult> UpdateCart([FromRoute] Guid id, [FromRoute] int count) { var userid = (User as CustomPrincipal).CurrentIdentity.Id; var item = _context.ShopCarts.SingleOrDefault(m => m.UserId == userid && m.CommodityId == id); if (item == null) { return(NotFound()); } item.Count = count; await _context.SaveChangesAsync(); return(Ok()); }
public async Task <IActionResult> PostStore([FromBody] Store store) { var userid = (User as CustomPrincipal).CurrentIdentity.Id; var user = _context.Users.SingleOrDefault(m => m.Id == userid); user.Role = 2; store.UserId = userid; _context.Stores.Add(store); await _context.SaveChangesAsync(); return(Ok()); }
public async Task <IActionResult> Create([FromBody] Order[] orders, [FromQuery] string from) { var userid = (User as CustomPrincipal).CurrentIdentity.Id; foreach (var order in orders) { order.UserId = userid; order.State = 1; } var results = orders.Where(m => { var commodity = _context.Commodities.Single(n => n.Id == m.CommodityId); if (commodity.Surplus < m.Count) { return(false); } return(true); }); //判断订单中的商品数量是否小于库存 foreach (var order in results) { var commodity = _context.Commodities.Single(m => m.Id == order.CommodityId); commodity.Surplus -= order.Count; } if (from == "cart") //来自购物车的订单,需要先移除购物车 { _context.ShopCarts.RemoveRange(results.Select(m => new ShopCart { CommodityId = m.CommodityId, UserId = m.UserId })); } _context.Orders.AddRange(results); await _context.SaveChangesAsync(); return(Ok()); }
public async Task <IActionResult> GetById([FromRoute] Guid id) { var commodity = await _context.Commodities.Include(m => m.Thumbs).Include(m => m.Orders).SingleOrDefaultAsync(m => m.Id == id); if (commodity == null) { return(NotFound()); } var values = Request.Headers["Authorization"]; if (values.Count != 0) { var token = Base64Helper.Decode(values[0].Substring(6)); var userid = Guid.Parse(token); var item = _context.BrowseHistories.SingleOrDefault(m => m.UserId == userid && m.CommodityId == commodity.Id && m.Datetime.Date == DateTime.Now.Date); if (item != null) { item.Count += 1; } else { _context.BrowseHistories.Add(new BrowseHistory { UserId = userid, CommodityId = commodity.Id, Count = 1 }); } await _context.SaveChangesAsync(); } decimal?rate = null; var orders = commodity.Orders.Where(m => m.State == 4); if (orders.Count() != 0) { rate = decimal.Round((decimal)orders.Sum(m => m.Rate) / orders.Count(), 1); } return(Ok(new { id = commodity.Id, name = commodity.Name, description = commodity.Description, thumbs = commodity.Thumbs.Select(m => m.Url), total = commodity.Total, surplus = commodity.Surplus, price = commodity.Price, rate })); }
public async Task <IActionResult> SignUp([FromBody] SignUpViewModel vm) { var exist = await _context.Users.AnyAsync(m => m.Email == vm.Email); if (exist) { return(BadRequest()); } var user = new User { Name = vm.Name, Email = vm.Email, Password = vm.Pass }; _context.Users.Add(user); await _context.SaveChangesAsync(); Response.Cookies.Append("token", Base64Helper.Encode(user.Id.ToString())); return(Ok()); }