public async Task <IActionResult> ChangeState(string id, [FromBody] OrderStateItem state) { if (ModelState.IsValid == false) { return(BadRequest(ModelState)); } string accid = AuthMan.GetAccountId(this); var ok = await repo.CanUpdateAsync(accid, id); if (ok == false) { return(Forbid()); } var res = await repo.GetAsync(accid, id); if (res == null) { return(NotFound()); } res.StateTime = DateTime.UtcNow; if (res.OrderStates == null) { res.OrderStates = new List <OrderStateItem>(); } state.Id = GuidGen.NewGUID(); state.Order = res; state.OrderId = res.Id; state.OldState = res.State; state.OperateTime = DateTime.UtcNow; res.State = state.NewState; res.OrderStates.Add(state); await repo.SaveChangesAsync(); return(Ok()); }
public OrderItemViewModel(OrderStateItem item) { Product = new OrderItemProductViewModel(item.Product); Quantity = item.Quantity; }