Esempio n. 1
0
        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");
        }
Esempio n. 2
0
        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;
        }