public IActionResult UserPlaylist() { List <string> жанры = _context.Жанры.Select(t => t.Жанр).ToList(); List <string> группы = _context.Коллективы.Select(t => t.Название_коллектива).ToList(); ViewBag.Genres = жанры; ViewBag.Bands = группы; Guid UserId = Guid.Parse(User.Identity.Name); var hernya = (from плейлист in _context.Плейлист join треквплейлисте in _context.Треки_в_плейлисте on плейлист.ID equals треквплейлисте.ID_Плейлиста join трек in _context.Треки on треквплейлисте.ID_Трека equals трек.ID where плейлист.ID_Пользователя == UserId select new { трек.ID, трек.ID_альбома, трек.Название_трека, }).ToList(); List <Треки> треки = new List <Треки>(); foreach (var item in hernya) { треки.Add(new Треки() { ID = item.ID, ID_альбома = item.ID_альбома, Название_трека = item.Название_трека }); } var треки_В_Плейлисте = (from trak in _context.Треки_в_плейлисте join playlist in _context.Плейлист on trak.ID_Плейлиста equals playlist.ID where playlist.ID_Пользователя == UserId select trak).ToList(); TracksWithUserPlaylistViewModel tracks = new TracksWithUserPlaylistViewModel() { треки = треки, Треки_В_Плейлисте = треки_В_Плейлисте }; return(View(tracks)); }
public IActionResult Index() { List <Треки_в_плейлисте> треки_В_Плейлисте = new List <Треки_в_плейлисте>(); if (User.Identity.Name != null) { Guid UserId = Guid.Parse(User.Identity.Name); треки_В_Плейлисте = (from trak in _context.Треки_в_плейлисте join playlist in _context.Плейлист on trak.ID_Плейлиста equals playlist.ID where playlist.ID_Пользователя == UserId select trak).ToList(); } List <string> жанры = _context.Жанры.Select(t => t.Жанр).ToList(); List <string> группы = _context.Коллективы.Select(t => t.Название_коллектива).ToList(); ViewBag.Genres = жанры; ViewBag.Bands = группы; var hernya = _context.Треки.Select(t => new { t.ID, t.ID_альбома, t.Название_трека }).ToList(); List <Треки> треки = new List <Треки>(); foreach (var item in hernya) { треки.Add(new Треки() { ID = item.ID, ID_альбома = item.ID_альбома, Название_трека = item.Название_трека }); } TracksWithUserPlaylistViewModel tracks = new TracksWithUserPlaylistViewModel() { треки = треки, Треки_В_Плейлисте = треки_В_Плейлисте }; return(View(tracks)); }
public IActionResult FilterTracks(string?pattern, string?genre, string?band, string?is_all) { List <Треки> треки = new List <Треки>(); List <Треки_в_плейлисте> треки_В_Плейлисте = new List <Треки_в_плейлисте>(); Guid UserId = Guid.Empty; if (User.Identity.IsAuthenticated) { UserId = Guid.Parse(User.Identity.Name); } if (is_all == "false") { IQueryable <Треки> tracksq = from плейлист in _context.Плейлист join треквплейлисте in _context.Треки_в_плейлисте on плейлист.ID equals треквплейлисте.ID_Плейлиста join трек in _context.Треки on треквплейлисте.ID_Трека equals трек.ID where плейлист.ID_Пользователя == UserId select трек; if (pattern != null && pattern != "") { tracksq = tracksq.Where(t => EF.Functions.Like(t.Название_трека, pattern + "%")); } if (genre != null && pattern != "") { tracksq = from trak in tracksq join album in _context.Альбомы.Include(t => t.жанр) on trak.ID_альбома equals album.ID where album.жанр.Жанр == genre select trak; } if (band != null && pattern != "") { tracksq = from trak in tracksq join album in _context.Альбомы.Include(t => t.коллектив) on trak.ID_альбома equals album.ID where album.коллектив.Название_коллектива == band select trak; } var hernya = tracksq.Select(t => new { t.ID, t.ID_альбома, t.Название_трека }).ToList(); foreach (var item in hernya) { треки.Add(new Треки() { ID = item.ID, ID_альбома = item.ID_альбома, Название_трека = item.Название_трека }); } треки_В_Плейлисте = (from trak in _context.Треки_в_плейлисте join playlist in _context.Плейлист on trak.ID_Плейлиста equals playlist.ID where playlist.ID_Пользователя == UserId select trak).ToList(); } else { IQueryable <Треки> tracksq = _context.Треки; if (pattern != null && pattern != "") { tracksq = tracksq.Where(t => EF.Functions.Like(t.Название_трека, pattern + "%")); } if (genre != null && genre != "") { tracksq = from trak in tracksq join album in _context.Альбомы.Include(t => t.жанр) on trak.ID_альбома equals album.ID where album.жанр.Жанр == genre select trak; } if (band != null && band != "") { tracksq = from trak in tracksq join album in _context.Альбомы.Include(t => t.коллектив) on trak.ID_альбома equals album.ID where album.коллектив.Название_коллектива == band select trak; } var hernya = tracksq.ToList(); foreach (var item in hernya) { треки.Add(new Треки() { ID = item.ID, ID_альбома = item.ID_альбома, Название_трека = item.Название_трека }); } треки_В_Плейлисте = (from trak in _context.Треки_в_плейлисте join playlist in _context.Плейлист on trak.ID_Плейлиста equals playlist.ID where playlist.ID_Пользователя == UserId select trak).ToList(); } TracksWithUserPlaylistViewModel tracks = new TracksWithUserPlaylistViewModel() { треки = треки, Треки_В_Плейлисте = треки_В_Плейлисте }; return(PartialView("_TracksFiltered", tracks)); }