public UpdateInfoDto GetUpdate(OrderCoffeDto order)
        {
            if (random.Next(1, 5) != 4)
            {
                return(new UpdateInfoDto {
                    IsNew = false
                });
            }

            var index = GetNextStatusIndex(order.OrderCoffeeId);

            if (Status.Length <= index)
            {
                return(new UpdateInfoDto {
                    IsNew = false
                });
            }

            var result = new UpdateInfoDto
            {
                OrderCoffeeId = order.OrderCoffeeId,
                IsNew         = true,
                Update        = Status[index],
                IsFinished    = (Status.Length - 1 == index)
            };

            return(result);
        }
示例#2
0
        public async Task GetUpdateForOrder(OrderCoffeDto order)
        {
            //Context.User.Identity
            await Clients.Others.NewOrder(order);

            UpdateInfoDto result;

            do
            {
                result = _orderChecker.GetUpdate(order);
                await Task.Delay(700);

                if (!result.IsNew)
                {
                    continue;
                }
                await Clients.Caller.ReceiveOrderUpdate(result);

                await Clients.Group("allUpdateReceivers").ReceiveOrderUpdate(result);
            } while (!result.IsFinished);
            await Clients.Caller.Finished(order);
        }
示例#3
0
 public int OrderCoffee(OrderCoffeDto order)
 {
     OrderId++;
     return(OrderId); //return order id
 }