public void Join(int userId, int shopId) { List<OrderDetail> orders = new List<OrderDetail>(); ShopModel sm = new ShopModel(); UserModel um = new UserModel(); UserInfo userInfo = um.GetUserInfo(userId); short userGradeLevel = userInfo.UserGradeCategory.GradeLevel; ClientInfo clientInfo = new ClientInfo() { ConnectionId = Context.ConnectionId, UserId = userId, UserName = userInfo.Name, GradeLevel = userGradeLevel }; if (_ClientInfos.Any(r => r.Key == userId)) { _ClientInfos[userId] = clientInfo; } else { _ClientInfos[userId] = clientInfo; } if (_Managers.Any(r => r == Context.ConnectionId)) { if (userGradeLevel != 9) { _Managers.Remove(Context.ConnectionId); } } else { if (userGradeLevel == 9) { _Managers.Add(Context.ConnectionId); } } orders = sm.GetAvailableUserOrderDetail(shopId) .Select(r => new OrderDetail() { Id = r.Id, DisheId = r.DisheId, Count = r.OrderCount, Price = r.Price, Available = (r.UserId == userId || userGradeLevel == 9) ? 1 : 0 }).ToList<OrderDetail>(); Clients.Caller.broadcastOrderAdd(orders); }