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());
        }
示例#2
0
 public OrderItemViewModel(OrderStateItem item)
 {
     Product  = new OrderItemProductViewModel(item.Product);
     Quantity = item.Quantity;
 }