public List<MetroContract_Comment> GetAniDBRecommendationsForAnime(int animeID, int maxRecords) { List<MetroContract_Comment> contracts = new List<MetroContract_Comment>(); try { using (var session = JMMService.SessionFactory.OpenSession()) { AniDB_RecommendationRepository repBA = new AniDB_RecommendationRepository(); int cnt = 0; foreach (AniDB_Recommendation rec in repBA.GetByAnimeID(session, animeID)) { MetroContract_Comment shout = new MetroContract_Comment(); shout.UserID = rec.UserID; shout.UserName = ""; // shout details shout.CommentText = rec.RecommendationText; shout.IsSpoiler = false; shout.CommentDate = null; shout.ImageURL = string.Empty; AniDBRecommendationType recType = (AniDBRecommendationType)rec.RecommendationType; switch (recType) { case AniDBRecommendationType.ForFans: shout.CommentType = (int)WhatPeopleAreSayingType.AniDBForFans; break; case AniDBRecommendationType.MustSee: shout.CommentType = (int)WhatPeopleAreSayingType.AniDBMustSee; break; case AniDBRecommendationType.Recommended: shout.CommentType = (int)WhatPeopleAreSayingType.AniDBRecommendation; break; } shout.Source = "AniDB"; cnt++; contracts.Add(shout); if (cnt == maxRecords) break; } return contracts; } } catch (Exception ex) { logger.ErrorException(ex.ToString(), ex); return contracts; } }
public List<Contract_AniDB_Recommendation> GetAniDBRecommendations(int animeID) { List<Contract_AniDB_Recommendation> contracts = new List<Contract_AniDB_Recommendation>(); try { AniDB_RecommendationRepository repBA = new AniDB_RecommendationRepository(); foreach (AniDB_Recommendation rec in repBA.GetByAnimeID(animeID)) contracts.Add(rec.ToContract()); return contracts; } catch (Exception ex) { logger.ErrorException(ex.ToString(), ex); return contracts; } }
public JMMServer.Providers.Azure.AnimeFull ToContractAzure(ISession session) { JMMServer.Providers.Azure.AnimeFull contract = new JMMServer.Providers.Azure.AnimeFull(); contract.Detail = new Providers.Azure.AnimeDetail(); contract.Characters = new List<Providers.Azure.AnimeCharacter>(); contract.Comments = new List<Providers.Azure.AnimeComment>(); contract.Detail.AllTags = this.TagsString; contract.Detail.AllCategories = this.TagsString; contract.Detail.AnimeID = this.AnimeID; contract.Detail.AnimeName = this.MainTitle; contract.Detail.AnimeType = this.AnimeTypeDescription; contract.Detail.Description = this.Description; contract.Detail.EndDateLong = Utils.GetAniDBDateAsSeconds(this.EndDate); contract.Detail.StartDateLong = Utils.GetAniDBDateAsSeconds(this.AirDate); contract.Detail.EpisodeCountNormal = this.EpisodeCountNormal; contract.Detail.EpisodeCountSpecial = this.EpisodeCountSpecial; contract.Detail.FanartURL = GetDefaultFanartOnlineURL(session); contract.Detail.OverallRating = this.AniDBRating; contract.Detail.PosterURL = string.Format(Constants.URLS.AniDB_Images, Picname); contract.Detail.TotalVotes = this.AniDBTotalVotes; AniDB_Anime_CharacterRepository repAnimeChar = new AniDB_Anime_CharacterRepository(); AniDB_CharacterRepository repChar = new AniDB_CharacterRepository(); List<AniDB_Anime_Character> animeChars = repAnimeChar.GetByAnimeID(session, AnimeID); if (animeChars != null || animeChars.Count > 0) { // first get all the main characters foreach (AniDB_Anime_Character animeChar in animeChars.Where(item => item.CharType.Equals("main character in", StringComparison.InvariantCultureIgnoreCase))) { AniDB_Character chr = repChar.GetByCharID(session, animeChar.CharID); if (chr != null) contract.Characters.Add(chr.ToContractAzure(animeChar)); } // now get the rest foreach (AniDB_Anime_Character animeChar in animeChars.Where(item => !item.CharType.Equals("main character in", StringComparison.InvariantCultureIgnoreCase))) { AniDB_Character chr = repChar.GetByCharID(session, animeChar.CharID); if (chr != null) contract.Characters.Add(chr.ToContractAzure(animeChar)); } } AniDB_RecommendationRepository repBA = new AniDB_RecommendationRepository(); foreach (AniDB_Recommendation rec in repBA.GetByAnimeID(session, AnimeID)) { JMMServer.Providers.Azure.AnimeComment comment = new JMMServer.Providers.Azure.AnimeComment(); comment.UserID = rec.UserID; comment.UserName = ""; // Comment details comment.CommentText = rec.RecommendationText; comment.IsSpoiler = false; comment.CommentDateLong = 0; comment.ImageURL = string.Empty; AniDBRecommendationType recType = (AniDBRecommendationType)rec.RecommendationType; switch (recType) { case AniDBRecommendationType.ForFans: comment.CommentType = (int)WhatPeopleAreSayingType.AniDBForFans; break; case AniDBRecommendationType.MustSee: comment.CommentType = (int)WhatPeopleAreSayingType.AniDBMustSee; break; case AniDBRecommendationType.Recommended: comment.CommentType = (int)WhatPeopleAreSayingType.AniDBRecommendation; break; } comment.Source = "AniDB"; contract.Comments.Add(comment); } return contract; }