public static async void showMusicHeroCard(IMessageActivity message, MusicSearchResult searchResult) { //Make reply activity and set layout Activity reply = ((Activity)message).CreateReply(); reply.AttachmentLayout = AttachmentLayoutTypes.Carousel; //Make each Card for each musician foreach (Value musician in searchResult.value) { List <CardImage> cardImages = new List <CardImage>(); cardImages.Add(new CardImage(url: musician.imageURL)); HeroCard card = new HeroCard() { Title = musician.Name, Subtitle = $"Era: {musician.Era } | Search Score: {musician.searchscore}", Text = musician.Description, Images = cardImages }; reply.Attachments.Add(card.ToAttachment()); } //make connector and reply message ConnectorClient connector = new ConnectorClient(new Uri(reply.ServiceUrl)); await connector.Conversations.SendToConversationAsync(reply); }
public ActionResult MusicByArtistId(string Id, int page = 1, SearchSortType sortType = SearchSortType.LengthDesc) { MusicSearchResult musicRes = new MusicSearchResult(); PagingResponse <Music> res = _mscService.GetByArtistId(Id, sortType, new PagingRequest(page, RESULTS_IN_PAGE)); if (res.Success) { var user = User.GetUser(); ICollection <Music> favouriteMusic = new List <Music>(); if (user?.FavouriteMusics != null) { favouriteMusic = user.FavouriteMusics; } musicRes.TotalPages = res.TotalPages; musicRes.TotalResults = res.TotalResults; musicRes.Musics = res.Entities.Select(msc => new MusicSearchModel(msc, favouriteMusic.Any(fav => fav.ID == msc.ID))); } else { return(new HttpStatusCodeResult(500, res.Message)); } return(Json(musicRes)); }
public ActionResult Search(string searchText, string strTagIds, int page = 1, SearchSortType sortType = SearchSortType.Relevant) { MusicSearchResult musicRes = new MusicSearchResult(); if (!string.IsNullOrWhiteSpace(searchText) || !string.IsNullOrWhiteSpace(strTagIds)) { var tagIds = strTagIds .Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries) .Select(id => Guid.Parse(id)); PagingResponse <Music> res = _mscService.GetBySearch(searchText, tagIds, new PagingRequest(page, RESULTS_IN_PAGE), sortType); if (res.Success) { var user = User.GetUser(); ICollection <Music> favouriteMusic = new List <Music>(); if (user?.FavouriteMusics != null) { favouriteMusic = user.FavouriteMusics; } musicRes.TotalPages = res.TotalPages; musicRes.TotalResults = res.TotalResults; musicRes.Musics = res.Entities.Select(msc => new MusicSearchModel(msc, favouriteMusic.Any(fav => fav.ID == msc.ID))); } else { return(new HttpStatusCodeResult(500, res.Message)); } } return(Json(musicRes)); }
public ActionResult FavouriteMusics(int page = 1) { var user = User.GetUser(); MusicSearchResult res = new MusicSearchResult(); var favouriteMusics = user.FavouriteMusics. Where(m => m.NCDataUpload == null && (m.Status == MusicActiveStatus.Edited || m.Status == MusicActiveStatus.Public)); res.TotalResults = favouriteMusics.Count(); res.TotalPages = (int)Math.Ceiling((double)res.TotalResults / RESULTS_IN_PAGE); res.Musics = favouriteMusics?. Skip((page - 1) * RESULTS_IN_PAGE). Take(RESULTS_IN_PAGE). Select(m => new MusicSearchModel(m, true)). ToList(); return(Json(res)); }
public ActionResult MySongs(bool sortByDateDesc = false, int page = 1) { var user = User.GetUser(); MusicSearchResult res = new MusicSearchResult(); var artistMusics = user.Artist.ArtistMusics .Where(m => m.NCDataUpload == null && m.Status != MusicActiveStatus.Edited); if (sortByDateDesc) { artistMusics = artistMusics.OrderByDescending(m => m.CreateDate); } else { artistMusics = artistMusics.OrderBy(m => m.CreateDate); } res.TotalResults = artistMusics.Count(); res.TotalPages = (int)Math.Ceiling((double)res.TotalResults / RESULTS_IN_PAGE); res.Musics = artistMusics .Select(m => new MusicSearchModel(m, false, true)) .Skip((page - 1) * RESULTS_IN_PAGE) .Take(RESULTS_IN_PAGE); return(Content(JsonConvert.SerializeObject(res), "application/json")); }