public static void Send_AnimeFull(JMMServer.Entities.AniDB_Anime data) { //if (!ServerSettings.WebCache_XRefFileEpisode_Send) return; string uri = string.Format(@"http://{0}/api/animefull", azureHostBaseAddress); AnimeFull obj = data.ToContractAzure(); string json = JSONHelper.Serialize <AnimeFull>(obj); SendData(uri, json, "POST"); }
public AnimeFull ToContractAzure(ISessionWrapper session) { AnimeFull contract = new AnimeFull(); contract.Detail = new AnimeDetail(); contract.Characters = new List<AnimeCharacter>(); contract.Comments = new List<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; List<AniDB_Anime_Character> animeChars = RepoFactory.AniDB_Anime_Character.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 = RepoFactory.AniDB_Character.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 = RepoFactory.AniDB_Character.GetByCharID(session, animeChar.CharID); if (chr != null) contract.Characters.Add(chr.ToContractAzure(animeChar)); } } foreach (AniDB_Recommendation rec in RepoFactory.AniDB_Recommendation.GetByAnimeID(session, AnimeID)) { AnimeComment comment = new 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; }