public IHttpActionResult getPlaylistByKey(string key)
        {
            var playlist = playlistManager.ReadPlaylistByKey(key);

            if (playlist == null)
            {
                return(NotFound());
            }

            return(Ok(playlist));
        }
        public ActionResult View(string key)
        {
            if (User != null)
            {
                user = userManager.ReadUser(User.Identity.Name);
            }
            var playlist     = playlistManager.ReadPlaylistByKey(key);
            var votesUser    = playlistManager.ReadVotesForUser(user);
            var organisation = organisationManager.ReadOrganisationForPlaylist(playlist.Id);

            var playlistOwners = new List <User>();

            if (organisation != null)
            {
                playlistOwners = userManager.ReadCoOrganiserFromOrganisation(organisation).ToList();
                playlistOwners.Add(userManager.ReadOrganiserFromOrganisation(organisation));
            }
            else
            {
                if (playlist.CreatedById != null)
                {
                    playlistOwners.Add(userManager.ReadUser((long)playlist.CreatedById));
                }
            }
            ViewBag.Organisation = organisationManager.ReadOrganisationForPlaylist(playlist.Id);
            ViewBag.CurrentUser  = user;
            ViewBag.Organisers   = playlistOwners;
            ViewBag.VotesUser    = votesUser;
            ViewBag.PlaylistId   = playlist.Id;
            ViewBag.PlaylistKey  = playlist.Key;
            ViewBag.HistoryCount = playlist.PlaylistTracks.Count(t => t.PlayedAt != null);

            playlist.PlaylistTracks = playlist.PlaylistTracks.Where(t => t.PlayedAt == null).ToList();

            return(View(playlist));
        }