示例#1
0
 public ActionResult EditPost(int id)
 {
     if (ModelState.IsValid)
     {
         String       user     = GetCurrentUserName();
         ViewPlaylist playlist = Rules.Find.PlaylistWithOwnerAccess(id, user);
         if (playlist == null)
         {
             return(HttpNotFound());
         }
         if (TryUpdateModel <ViewPlaylist>(playlist))
         {
             Rules.Edit.PlaylistTo(playlist, user);
             return(RedirectToAction("Details", new { id = id }));
         }
         else
         {
             return(View("Edit"));//TODO: suposedly should display edit form with erros.
         }
     }
     else
     {
         return(View("Edit"));//TODO: suposedly should display edit form with erros.
     }
 }
示例#2
0
        public ActionResult DetailsGet(int id)
        {
            ViewPlaylist playlist = Rules.Find.PlaylistWithReadAccess(id, GetCurrentUserName());

            if (playlist == null)
            {
                return(HttpNotFound());
            }
            return(View("Details", playlist));
        }
示例#3
0
        public bool RemoveTrack(ViewPlaylist p, ViewTrack t)
        {
            var playlist = repo.get <Playlist>(p.Id);

            if (playlist == null || !playlist.Tracks.ContainsKey(t.Href))
            {
                return(false);
            }
            playlist.Tracks.Remove(t.Href);
            return(true);
        }
示例#4
0
 public PlaylistNewView(ViewPlaylist p)
     : base("New Playlist",
            H1(Text("Create a new playlist")),
            Form("post", ResolveUri.ForPlaylist(),
                 Label("name", "Name: "), InputText("name", p == null ? "" : p.Name),
                 Label("desc", "Description: "), InputText("desc", p == null ? "" : p.Description),
                 P(InputSubmit("Submit"))
                 )
            )
 {
 }
示例#5
0
        public ActionResult EditGet(int id)
        {
            String       user     = GetCurrentUserName();
            ViewPlaylist playlist = Rules.Find.PlaylistWithOwnerAccess(id, user);

            if (playlist == null)
            {
                return(HttpNotFound());
            }
            return(View("Edit", playlist));
        }
示例#6
0
        public bool AddTrack(ViewPlaylist p, ViewTrack t)
        {
            var playlist = repo.get <Playlist>(p.Id);

            if (playlist == null || playlist.Tracks.ContainsKey(t.Href))
            {
                return(false);
            }
            playlist.Tracks.Add(t.Href, t.Name);
            return(true);
        }
示例#7
0
        public ViewPlaylist[] Playlists()
        {
            var pl = repo.getAll <Playlist>();
            List <ViewPlaylist> list = new List <ViewPlaylist>();

            foreach (var p in pl)
            {
                var vp = new ViewPlaylist(p.id, p.Name, p.Description, p.Tracks);
                list.Add(vp);
            }
            return(list.ToArray());
        }
示例#8
0
        public bool RemoveUser(ViewPlaylist p, string oldUser, string CurrentUser)
        {
            Playlist playlist = repo.get(p.Id);

            if (playlist != null && playlist.Owner.Equals(CurrentUser))
            {
                playlist.Shared.RemoveAll(per => per.User.Equals(oldUser));
                repo.update(playlist);
                return(true);
            }
            return(false);
        }
示例#9
0
        public ViewPlaylist Playlist(int id)
        {
            Playlist p = repo.get <Playlist>(id);

            if (p == null && p.Tracks.Count > 0)
            {
                return(null);
            }
            var old     = repo.remove <Playlist>(id);
            var removed = new ViewPlaylist(old.id, old.Name, old.Description);

            foreach (var track in old.Tracks)
            {
                removed.Tracks.Add(track.Key, track.Value);
            }
            return(removed);
        }
示例#10
0
        public ViewPlaylist PlaylistTo(ViewPlaylist editPlaylist, string CurrentUser)
        {
            Playlist oldP = repo.get(editPlaylist.Id);

            if (oldP == null || !oldP.Owner.Equals(CurrentUser))
            {
                return(null);
            }
            oldP.Name        = editPlaylist.Name;
            oldP.Description = editPlaylist.Description;
            Playlist edit = repo.update(oldP);

            if (edit != null)
            {
                return(new ViewPlaylist(edit));
            }
            return(null);
        }
示例#11
0
        public ActionResult PermissionGet(int id)
        {
            String       user     = GetCurrentUserName();
            ViewPlaylist playlist = Rules.Find.PlaylistWithOwnerAccess(id, user);

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

            var tmp = from MembershipUser u in Membership.GetAllUsers()
                      select new SelectListItem {
                Text = u.UserName, Value = u.UserName
            };

            ViewBag.Users = tmp.Where(u => !u.Text.Equals(user));
            return(View(playlist));
        }
示例#12
0
 public PlaylistDetailView(ViewPlaylist p)
     : base("Playlist Detail",
            H1(Text("Playlist Detail - " + p.Name)),
            H3(Text("Name: " + p.Name)),
            H3(Text("Description: " + p.Description)),
            H3(Text("Track List")),
            Ul(
                p.Tracks.Select(track => Li(
                                    A(ResolveUri.ForTrack(track.Key), track.Value),
                                    Form("POST", ResolveUri.ForRemoveTrack(p, track.Key), P(InputSubmit("Remove")))
                                    )).ToArray()
                ),
            Form("POST", ResolveUri.ForPlaylistRemove(p), P(InputSubmit("Delete"))),
            Form("GET", ResolveUri.ForPlaylistEdit(p), P(InputSubmit("Edit"))),
            P(A(ResolveUri.ForHome(), "Home")),
            P(A(ResolveUri.ForSearch(), "Search"))
            )
 {
 }
示例#13
0
        public ViewPlaylist Playlist(CreatePlaylist createPlaylist)
        {
            string name = createPlaylist.Name;
            string desc = createPlaylist.Description;

            if (name.Equals("") || desc.Equals(""))
            {
                return(null);
            }
            Playlist p = new Playlist(name, desc);

            Playlist[] matchingPlaylists = repo.getAll(p);
            if (matchingPlaylists.Length <= 0)
            {
                int id = repo.put(p);
                p.id = id;
                ViewPlaylist ret = new ViewPlaylist(p.id, p.Name, p.Description, p.Tracks);
                return(ret);
            }
            return(null);
        }
示例#14
0
 public static string For(ViewPlaylist p)
 {
     return(string.Format("/playlist/{0}", p.Id));
 }
示例#15
0
 public static string ForPlaylistRemove(ViewPlaylist p)
 {
     return(string.Format("/playlist/{0}/delete", p.Id));
 }
示例#16
0
 public static string ForPlaylistEdit(ViewPlaylist p)
 {
     return(string.Format("/playlist/{0}/edit", p.Id));
 }
示例#17
0
 public static string ForRemoveTrack(ViewPlaylist pl, string href)
 {
     return(string.Format("/playlist/{0}/remove/{1}", href, pl.Id));
 }