//GET /User/CreateGenre/ public ActionResult CreateGenre(string name) { //Samo admin dodaje zanr if (Session["user"] == null || ((ViewUser)Session["user"]).admin == false) { return(Redirect("/")); } if (name == null || name == "") { return(Redirect("/User/")); } Neo4jDataProvider dbNeo4j = new Neo4jDataProvider(); List <string> check = dbNeo4j.GenreRead(); if (check.Contains(name)) { return(Redirect("/User/#addGenreModal")); } else { Genre genre = new Genre(); genre.name = name; dbNeo4j.GenreCreate(genre); return(Redirect("/User/")); } }
//GET /User/DeleteGenre/ public ActionResult DeleteGenre(string name) { //Samo admin brise zanr if (Session["user"] == null || ((ViewUser)Session["user"]).admin == false) { return(Redirect("/")); } if (name == null || name == "") { return(Redirect("/User/")); } Neo4jDataProvider dbNeo4j = new Neo4jDataProvider(); List <string> check = dbNeo4j.GenreRead(); if (!check.Contains(name)) { return(Redirect("/User/#deleteGenreModal")); } else { dbNeo4j.GenreDelete(name); return(Redirect("/User/")); } }
// GET: /Search/ public ActionResult Index(string text, string genre) { Neo4jDataProvider dbNeo4j = new Neo4jDataProvider(); RedisDataProvider dbRedis = new RedisDataProvider(); ViewBag.showNav = true; SearchPageViewModel pageModel = new SearchPageViewModel(); //Is loged if (Session["user"] != null && Session["user"].GetType() == (typeof(ViewUser))) { pageModel.user = (ViewUser)(Session["user"]); dbRedis.AddSearchPhraseFromUser(pageModel.user.name, text); } List <string> redisResults = dbRedis.AutoComplete(pageModel.user != null ? pageModel.user.name : null, text, false); #region NavBarData if (genre == "All" || genre == "") { pageModel.genre = null; } else { pageModel.genre = genre; } //Getting artists pageModel.artists = dbNeo4j.ArtistRead(pageModel.genre); for (char c = 'A'; c <= 'Z'; c++) { if (pageModel.artists.ContainsKey(c.ToString())) { List <ViewArtist> tmp = pageModel.artists[c.ToString()]; pageModel.artists[c.ToString()] = tmp.OrderBy(x => x.name).ToList(); } } //Getting genres pageModel.genres = dbNeo4j.GenreRead(); pageModel.genres.Sort(); #endregion //Getting artist songs pageModel.matched = dbNeo4j.SearchResults(redisResults); pageModel.matched = pageModel.matched.OrderBy(x => x.artist + " - " + x.name).ToList(); pageModel.text = text; return(View(pageModel)); }
// GET: /Artist/Index public ActionResult Index(string artist, string genre) { ArtistPageViewModel pageModel = new ArtistPageViewModel(); //Is loged if (Session["user"] != null && Session["user"].GetType() == (typeof(ViewUser))) { pageModel.user = (ViewUser)(Session["user"]); } Neo4jDataProvider dbNeo4j = new Neo4jDataProvider(); #region NavBarData if (genre == "All" || genre == "") { pageModel.genre = null; } else { pageModel.genre = genre; } //Getting artists pageModel.artists = dbNeo4j.ArtistRead(pageModel.genre); for (char c = 'A'; c <= 'Z'; c++) { if (pageModel.artists.ContainsKey(c.ToString())) { List <ViewArtist> tmp = pageModel.artists[c.ToString()]; pageModel.artists[c.ToString()] = tmp.OrderBy(x => x.name).ToList(); } } //Getting genres pageModel.genres = dbNeo4j.GenreRead(); pageModel.genres.Sort(); #endregion //Getting artist songs pageModel.artistSongs = dbNeo4j.SongReadArtistSongs(artist); pageModel.artistSongs = pageModel.artistSongs.OrderBy(x => x.artist + " - " + x.name).ToList(); //Geting artist info pageModel.artist = dbNeo4j.ArtistReadOne(artist); ViewBag.showNav = true; return(View(pageModel)); }
//GET /User/CreateArtist/ public ActionResult CreateArtist(string name, string bio, string website, string genres) { //Samo admin dodaje izvodjaca if (Session["user"] == null || ((ViewUser)Session["user"]).admin == false) { return(Redirect("/")); } if (name == null || name == "" || bio == null || bio == "" || website == null || website == "" || genres == null || genres == "") { return(Redirect("/User/")); } Neo4jDataProvider dbNeo4j = new Neo4jDataProvider(); List <string> checkArtists = dbNeo4j.ArtistRead(); if (checkArtists.Contains(name)) { return(Redirect("/User/#addArtistModal")); } else { string genresClean = Regex.Replace(genres, " *, *", ","); List <string> genreNames = genresClean.Split(',').ToList(); List <string> checkGenres = dbNeo4j.GenreRead(); List <string> validGenreNames = genreNames.Intersect(checkGenres).ToList(); List <Genre> validGenres = new List <Genre>(); foreach (string genreName in validGenreNames) { Genre tmp = new Genre(); tmp.name = genreName; validGenres.Add(tmp); } if (validGenres == null) { return(Redirect("/User/")); } Artist artist = new Artist(); artist.name = name; artist.biography = bio; artist.website = website; artist.link = "/" + artist; dbNeo4j.ArtistCreate(artist, validGenres); return(Redirect("/User/")); } }
// GET /User/Index public ActionResult Index(String genre) { UserPageViewModel pageModel = new UserPageViewModel(); if (Session["user"] != null && Session["user"].GetType() == (typeof(ViewUser))) { pageModel.user = (ViewUser)(Session["user"]); } else { return(Redirect("/")); } Neo4jDataProvider dbNeo4j = new Neo4jDataProvider(); RedisDataProvider dbRedis = new RedisDataProvider(); #region NavBarData if (genre == "All" || genre == "") { pageModel.genre = null; } else { pageModel.genre = genre; } //Getting artists pageModel.artists = dbNeo4j.ArtistRead(pageModel.genre); for (char c = 'A'; c <= 'Z'; c++) { if (pageModel.artists.ContainsKey(c.ToString())) { List <ViewArtist> tmp = pageModel.artists[c.ToString()]; pageModel.artists[c.ToString()] = tmp.OrderBy(x => x.name).ToList(); } } //Getting genres pageModel.genres = dbNeo4j.GenreRead(); pageModel.genres.Sort(); #endregion //Geting user created songs pageModel.userSongs = dbNeo4j.GetUserSongsAndDrafts(pageModel.user.name); //Geting user favorite songs pageModel.favoritSongs = dbNeo4j.UserGetFavoriteSongs(pageModel.user.name); //Getting user admin notification count pageModel.adminNotifications = dbRedis.GetAdminNotificationsCount(); //Geting user admin request songs pageModel.requestedSongs = dbNeo4j.SongDraftRead(); //User List pageModel.userList = dbNeo4j.UserRead(); //Getting statistics pageModel.songCount = dbRedis.GetSongCount(); if (pageModel.songCount == null || pageModel.songCount == "") { pageModel.songCount = "0"; } pageModel.artistCount = dbRedis.GetArtistCount(); if (pageModel.artistCount == null || pageModel.artistCount == "") { pageModel.artistCount = "0"; } pageModel.genreCount = dbRedis.GetGenreCount(); if (pageModel.genreCount == null || pageModel.genreCount == "") { pageModel.genreCount = "0"; } ViewBag.showNav = true; return(View(pageModel)); }
public void Initialize() { string date = DateTime.Now.ToString("dd-MM-yyyy"); Neo4jDataProvider dbNeo4j = new Neo4jDataProvider(); RedisDataProvider dbRedis = new RedisDataProvider(); StreamReader stream; //Check is database initialized if (dbNeo4j.UserExists("admin", "admin")) { return; } DeleteAllData(); dbRedis.ResetHashCounter(); #region Create users User admin = new User(); admin.name = "admin"; admin.email = "admin"; admin.password = "******"; admin.admin = true; admin.date = date; dbNeo4j.UserCreate(admin); try { stream = new StreamReader(HostingEnvironment.MapPath(userFilePath)); while (!stream.EndOfStream) { User user = new User(); user.name = stream.ReadLine(); user.email = stream.ReadLine(); user.password = stream.ReadLine(); user.admin = false; user.date = date; stream.ReadLine(); dbNeo4j.UserCreate(user); } stream.Close(); } catch (Exception e) { } #endregion #region Create genres try { stream = new StreamReader(HostingEnvironment.MapPath(genresFilePath)); while (!stream.EndOfStream) { Genre genre = new Genre(); genre.name = stream.ReadLine(); stream.ReadLine(); dbNeo4j.GenreCreate(genre); } stream.Close(); } catch (Exception e) { } #endregion #region Create artists try { stream = new StreamReader(HostingEnvironment.MapPath(artistFilePath)); while (!stream.EndOfStream) { Artist artist = new Artist(); artist.name = stream.ReadLine(); artist.biography = stream.ReadLine(); artist.website = stream.ReadLine(); string genresClean = Regex.Replace(stream.ReadLine(), " *, *", ","); List <string> genreNames = genresClean.Split(',').ToList(); List <string> checkGenres = dbNeo4j.GenreRead(); List <string> validGenreNames = genreNames.Intersect(checkGenres).ToList(); List <Genre> validGenres = new List <Genre>(); foreach (string genreName in validGenreNames) { Genre tmp = new Genre(); tmp.name = genreName; validGenres.Add(tmp); } dbNeo4j.ArtistCreate(artist, validGenres); stream.ReadLine(); } stream.Close(); } catch (Exception e) { } #endregion #region Create songs string[] songPaths = Directory.GetFiles(HostingEnvironment.MapPath(songFolderPath)); foreach (string songPath in songPaths) { try { stream = new StreamReader(songPath); Song song = new Song(); song.name = stream.ReadLine(); string artist = stream.ReadLine(); string user = stream.ReadLine(); stream.ReadLine(); song.content = stream.ReadToEnd(); song.date = date; dbNeo4j.SongCreate(song, user, artist); stream.Close(); } catch (Exception e) { } } #endregion #region Create favorites try { stream = new StreamReader(HostingEnvironment.MapPath(favoritesFilePath)); while (!stream.EndOfStream) { string song = stream.ReadLine(); string artist = stream.ReadLine(); string user = stream.ReadLine(); stream.ReadLine(); dbNeo4j.SongAddToFavorites(song, artist, user); } stream.Close(); } catch (Exception e) { } #endregion #region Create Comments try { stream = new StreamReader(HostingEnvironment.MapPath(commentsFilePath)); while (!stream.EndOfStream) { Comment comment = new Comment(); comment.title = stream.ReadLine(); comment.content = stream.ReadLine(); comment.date = date; string song = stream.ReadLine(); string artist = stream.ReadLine(); string user = stream.ReadLine(); stream.ReadLine(); dbNeo4j.CommentCreate(comment, user, artist, song); } stream.Close(); } catch (Exception e) { } #endregion #region Create requests try { stream = new StreamReader(HostingEnvironment.MapPath(songRequestFilePath)); while (!stream.EndOfStream) { SongRequest songRequest = new SongRequest(); songRequest.author = stream.ReadLine(); songRequest.artist = stream.ReadLine(); songRequest.song = stream.ReadLine(); songRequest.date = date; stream.ReadLine(); dbNeo4j.SongRequestCreate(songRequest); } stream.Close(); } catch (Exception e) { } #endregion #region Create songdrafts string[] songDraftPaths = Directory.GetFiles(HostingEnvironment.MapPath(songDraftFolderPath)); foreach (string songDraftPath in songDraftPaths) { try { stream = new StreamReader(songDraftPath); SongDraft songDraft = new SongDraft(); songDraft.name = stream.ReadLine(); songDraft.artist = stream.ReadLine(); string user = stream.ReadLine(); songDraft.content = stream.ReadToEnd(); songDraft.date = date; dbNeo4j.SongDraftCreate(songDraft, user); stream.Close(); dbRedis.AddAdminNotification(); } catch (Exception e) { } } #endregion }
//GET /Song/Index/ public ActionResult Index(string artist, string song, string genre) { ViewBag.showNav = true; SongPageViewModel pageModel = new SongPageViewModel(); //Is loged if (Session["user"] != null && Session["user"].GetType() == (typeof(ViewUser))) { pageModel.user = (ViewUser)(Session["user"]); } Neo4jDataProvider dbNeo4j = new Neo4jDataProvider(); RedisDataProvider dbRedis = new RedisDataProvider(); dbRedis.IncrementSongVisitCount(artist + " - " + song); #region NavBarData if (genre == "All" || genre == "") { pageModel.genre = null; } else { pageModel.genre = genre; } //Getting artists pageModel.artists = dbNeo4j.ArtistRead(pageModel.genre); for (char c = 'A'; c <= 'Z'; c++) { if (pageModel.artists.ContainsKey(c.ToString())) { List <ViewArtist> tmp = pageModel.artists[c.ToString()]; pageModel.artists[c.ToString()] = tmp.OrderBy(x => x.name).ToList(); } } //Getting genres pageModel.genres = dbNeo4j.GenreRead(); pageModel.genres.Sort(); #endregion //Getting artist songs pageModel.artistSongs = dbNeo4j.SongReadArtistSongs(artist); pageModel.artistSongs = pageModel.artistSongs.OrderBy(x => x.artist + " - " + x.name).ToList(); //Getting song data pageModel.song = dbNeo4j.SongRead(artist, song); //Getting song comment pageModel.comments = dbNeo4j.CommentRead(artist, song); //Check is song favorite if (pageModel.user != null) { pageModel.favorite = dbNeo4j.SongCheckIsFavorite(song, artist, pageModel.user.name); } pageModel.artist = artist; return(View(pageModel)); }
//GET /Home/Index public ActionResult Index(string genre) { #region Inicijalizacija baza podataka DBInitializer initializator = new DBInitializer(); initializator.Initialize(); #endregion HomePageViewModel pageModel = new HomePageViewModel(); //Is loged if (Session["user"] != null && Session["user"].GetType() == (typeof(ViewUser))) { pageModel.user = (ViewUser)(Session["user"]); } Neo4jDataProvider dbNeo4j = new Neo4jDataProvider(); RedisDataProvider dbRedis = new RedisDataProvider(); #region NavBarData if (genre == "All" || genre == "") { pageModel.genre = null; } else { pageModel.genre = genre; } //Getting artists pageModel.artists = dbNeo4j.ArtistRead(pageModel.genre); for (char c = 'A'; c <= 'Z'; c++) { if (pageModel.artists.ContainsKey(c.ToString())) { List <ViewArtist> tmp = pageModel.artists[c.ToString()]; pageModel.artists[c.ToString()] = tmp.OrderBy(x => x.name).ToList(); } } //Getting genres pageModel.genres = dbNeo4j.GenreRead(); pageModel.genres.Sort(); #endregion //Getting popular songs List <string> popularSongNames = dbRedis.GetMostPopularSongs(10); pageModel.popularSongs = dbNeo4j.SongRead(popularSongNames); //Getting latest songs List <string> latestSongNames = dbRedis.GetLatestSongs(); pageModel.latestSongs = dbNeo4j.SongRead(latestSongNames); //Getting songs requests pageModel.songRequests = dbNeo4j.SongRequestRead(); ViewBag.showNav = true; return(View(pageModel)); }