public ActionResult AddVote(int vote, long id)
        {
            var user        = userManager.ReadUser(User != null ? User.Identity.Name : testName);
            var createdVote = playlistManager.CreateVote(vote, user.Id, id);

            if (createdVote == null)
            {
                return(new HttpStatusCodeResult(400, "You have reached your vote limit for this playlist"));
            }

            var playlistTrack = playlistManager.ReadPlaylistTrack(id);
            var playlistId    = playlistTrack.Playlist.Id;

            var viewmodel = new LivePlaylistTrackViewModel
            {
                Id    = playlistTrack.Id,
                Score = playlistTrack.Votes.Sum(v => v.Score),
                Track = playlistTrack.Track
            };

            var context = GlobalHost.ConnectionManager.GetHubContext <PlaylistHub>();

            context.Clients.Group(playlistId.ToString()).scoreUpdated(id, viewmodel);

            return(new HttpStatusCodeResult(200));
        }
        public IHttpActionResult Downvote(long id, long trackId)
        {
            var userIdentity = RequestContext.Principal.Identity as ClaimsIdentity;
            var user         = GetUser(userIdentity);
            var createVote   = playlistManager.CreateVote(-1, user.Id, trackId);

            var playlistTrack = playlistManager.ReadPlaylistTrack(trackId);
            var viewmodel     = new LivePlaylistTrackViewModel
            {
                Id    = playlistTrack.Id,
                Score = playlistTrack.Votes.Sum(v => v.Score),
                Track = playlistTrack.Track
            };

            var context = GlobalHost.ConnectionManager.GetHubContext <PlaylistHub>();

            context.Clients.Group(id.ToString()).scoreUpdated(trackId, viewmodel);

            return(Ok(createVote));
        }
        public ActionResult UnVote(long id)
        {
            var user = userManager.ReadUser(User != null ? User.Identity.Name : testName);

            playlistManager.DeleteVote(id, user.Id);

            var playlistTrack = playlistManager.ReadPlaylistTrack(id);
            var playlistId    = playlistTrack.Playlist.Id;

            var viewmodel = new LivePlaylistTrackViewModel
            {
                Id    = playlistTrack.Id,
                Score = playlistTrack.Votes.Sum(v => v.Score),
                Track = playlistTrack.Track
            };

            var context = GlobalHost.ConnectionManager.GetHubContext <PlaylistHub>();

            context.Clients.Group(playlistId.ToString()).scoreUpdated(id, viewmodel);

            return(new HttpStatusCodeResult(200));
        }