public static List <Music> GetLikedMusics(string UserID) { XmlDocument doc = new XmlDocument(); doc.Load(@"users.xml"); XmlNodeList nodes = doc.DocumentElement.SelectNodes("User"); List <Music> tmp = new List <Music>(); foreach (XmlNode n in nodes) { if (n["UID"].InnerText == UserID) { XmlNodeList nodesMusics = n.SelectNodes("RatedMusics/Music"); foreach (XmlNode nM in nodesMusics) { if (GetPlaylist(nM["MID"].InnerText) == null) { Music tmpM = Indexation.GetMusicByID(nM["MID"].InnerText); tmpM.FileBinary = null; tmp.Add(tmpM); } } } } return(tmp); }
public static void Handle(Rate temp, Socket socket) { bool VoteExist = UsersInfos.VoteExist(temp.MusicRatedMID, Program.MyServer.Clients[socket]); UsersInfos.AddVoteMusic(temp.MusicRatedMID, Program.MyServer.Clients[socket]); if (temp.Type == ElementType.Music) { var m = Indexation.GetMusicByID(temp.MusicRatedMID); if (m != null) { if (VoteExist) { m.Rating--; } else { m.Rating++; Program.MyServer.Clients.TryGetValue(socket, out string uid); Program.MyServer.SendObject(new RequestAnswer(UsersInfos.GetLikedMusics(uid)), socket); } Program.MyServer.SendObject(new RateReport(true, temp.MusicRatedMID, m.Rating), socket); MusicsInfo.SaveMusicInfo(m); } } else { UsersInfos.RatePlaylist(temp.MusicRatedMID, !VoteExist); Program.MyServer.SendObject(new RateReport(true, temp.MusicRatedMID, UsersInfos.GetPlaylist(temp.MusicRatedMID).Rating), socket); } }
public void GetMusicByIDTest() { //Author a = new Author("Author1", "TestPath1"); //a.Albums.Add(new Album(a, "Album1", "TestPath2")); //a.Albums[0].Add(new Music("Music1", a, a.Albums[0], "TestPath3")); //Indexation.ServerMusics.Add(a); var r = Indexation.GetMusicByID(Indexation.ServerMusics[0].Albums[0].Musics.First().MID); Assert.AreEqual(Indexation.ServerMusics[0].Albums[0].Musics.First(), r); }
public static IEnumerable <Playlist> GetPlaylists(string UID) { List <Playlist> playlists = new List <Playlist>(); XmlDocument doc = new XmlDocument(); doc.Load(@"users.xml"); XmlNodeList nodes = doc.DocumentElement.SelectNodes("User"); foreach (XmlNode n in nodes) { XmlNodeList PlaylistNode = n.SelectNodes("UserPlaylists/Playlist"); foreach (XmlNode p in PlaylistNode) { Playlist playlist = new Playlist(new User(n["Name"].InnerText), p.Attributes["Name"].InnerText); foreach (XmlNode m in p.SelectNodes("Music")) { playlist.musics.Add(Indexation.GetMusicByID(m.InnerText)); } playlist.Rating = Convert.ToInt32(p.Attributes["Rating"].InnerText); if (p.Attributes["Level"].InnerText == true.ToString()) { if (n["UID"].InnerText == UID) { playlist.Private = true; playlists.Add(playlist); } } else { playlist.Private = false; playlists.Add(playlist); } } } return(playlists); }
public static void Handle(Request request, Socket socket) { switch (request.RequestsType) { case RequestsTypes.Search: Console.WriteLine("Request by client :" + (request as RequestSearch).Name); MusicsManagement.ClientSearch.SearchAnswer.Do(request as RequestSearch, socket); break; case RequestsTypes.MusicsBinaries: var m = Indexation.GetMusicByID((request as RequestBinairies).RequestedBinaries.MID); Music answer = new Music(m.Title, new Author(m.Author.Name), m.Album, Indexation.GetFileBinary(m)) { Format = m.Format, Rating = m.Rating }; Program.MyServer.SendObject(new RequestAnswer(answer), socket); break; case RequestsTypes.Favorites: List <Music> tmp = UsersInfos.GetLikedMusics((request as RequestFavorites).UserID); Program.MyServer.SendObject(new RequestAnswer(tmp), socket); break; case RequestsTypes.Users: if (Program.MyServer.Clients.GetUser(socket).Rank != Rank.Viewer) { Program.MyServer.SendObject(new RequestAnswer(UsersInfos.SearchUser((request as RequestUser).Username), true), socket); } else { Program.MyServer.SendObject(new RequestAnswer(null, false), socket); } break; } }