public async Task SendMessage(string groupName, string user, string message)
        {
            PointingSession pointingSession = new PointingCache().GetCacheData(groupName);

            pointingSession.MemberRating.First(m => m.Member == user).Rating = message;
            new PointingCache().LoadCacheData(pointingSession, groupName);
            await Clients.Group(groupName).SendAsync("ReceiveMessage", pointingSession.MemberRating.Select(mr => new { Member = mr.Member, HasRating = !string.IsNullOrWhiteSpace(mr.Rating) }));
        }
        //public Task LeaveGroup(string groupName, string user)
        //{
        //    PointingSession pointingSession = new PointingCache().GetCacheData(groupName);
        //    pointingSession.MemberRating.Remove(pointingSession.MemberRating.First(m => m.Member == user));
        //    return Groups.RemoveFromGroupAsync(Context.ConnectionId, groupName);
        //}

        public async Task Reset(string groupName)
        {
            PointingSession pointingSession = new PointingCache().GetCacheData(groupName);

            foreach (var rating in pointingSession.MemberRating)
            {
                rating.Rating = "";
            }
            await Clients.Group(groupName).SendAsync("ResetPointing", pointingSession.MemberRating.Select(mr => new { Member = mr.Member, HasRating = !string.IsNullOrWhiteSpace(mr.Rating) }));
        }
        public async Task JoinGroup(string groupName, string user)
        {
            PointingSession pointingSession = new PointingCache().GetCacheData(groupName);

            if (string.IsNullOrWhiteSpace(pointingSession.GroupName))
            {
                pointingSession.GroupName = groupName;
            }

            pointingSession.MemberRating.Add(new PointSessionMember()
            {
                Member = user
            });
            new PointingCache().LoadCacheData(pointingSession, groupName);
            await Groups.AddToGroupAsync(Context.ConnectionId, groupName);

            await Clients.Group(groupName).SendAsync("ReceiveMessage", pointingSession.MemberRating.Select(mr => new { Member = mr.Member, HasRating = !string.IsNullOrWhiteSpace(mr.Rating) }));
        }
        public async Task Reveal(string groupName)
        {
            PointingSession pointingSession = new PointingCache().GetCacheData(groupName);

            await Clients.Group(groupName).SendAsync("RevealPointing", pointingSession.MemberRating);
        }