Ejemplo n.º 1
0
        public List <ComicBook> GetFilteredComics(string filteredString)
        {
            var client = new MarvelRestClient(publicKey, privateKey);
            var filter = new ComicRequestFilter();

            filter.TitleStartsWith = filteredString;
            var response = client.FindComics(filter);
            List <ComicBook> comicList = new List <ComicBook>();

            if (response != null && response.Data != null)
            {
                foreach (var comic in response.Data.Results)
                {
                    var book = new ComicBook();
                    book.SeriesTitle = comic.Title;
                    book.Description = SetDescription(comic);//comic.Description;
                    book.IssueNumber = comic.IssueNumber;
                    var thumbNail = new Thumbnail();
                    thumbNail.Path      = comic.Thumbnail.Path;
                    thumbNail.Extension = comic.Thumbnail.Extension;
                    book.Thumbnail      = thumbNail;
                    List <ComicImage> images = new List <ComicImage>();
                    for (int i = 0; i < comic.Images.Count; i++)
                    {
                        ComicImage image = new ComicImage();
                        image.Extension = comic.Images[i].Extension;
                        image.Path      = comic.Images[i].Path;
                        images.Add(image);
                    }
                    comicList.Add(book);
                }
            }
            return(comicList);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Fetches lists of comics with optional filters.
        /// </summary>
        /// <param name="filter">
        /// Search query filter data
        /// </param>
        public virtual ComicResult GetComics(ComicRequestFilter filter = default(ComicRequestFilter))
        {
            var request = new RestRequest(ComicsUrlSegment, Method.GET);

            // Parse filter
            //
            ParseComicFilter(request, filter);

            return(Execute <ComicResult>(request));
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Limited to the top 5 comics ordered by Name Ascending
        /// </summary>
        /// <param name="character"></param>
        /// <returns></returns>
        public static List <Comic> GetComics(Character character)
        {
            var creds  = new Credentials();
            var client = new MarvelRestClient(creds.PublicKey, creds.PrivateKey);

            var filter = new ComicRequestFilter();

            filter.OrderBy(OrderResult.NameAscending);
            filter.Limit = 5;

            var comicResponse = client.FindCharacterComics(character.Id.ToString(), filter);

            return(ResultsToList(comicResponse));
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Fetches lists of comics in which a specific story appears,
        /// with optional filters.
        /// </summary>
        /// <param name="storyId">
        /// Story unique identifier
        /// </param>
        /// <param name="filter">
        /// Search query filter data
        /// </param>
        public virtual ComicResult GetStoryComics(string storyId, ComicRequestFilter filter = default(ComicRequestFilter))
        {
            // Build request url
            //
            string requestUrl =
                string.Format("{0}/{1}/comics", StoriesUrlSegment, storyId);

            var request = new RestRequest(requestUrl, Method.GET);

            // Parse filter
            //
            ParseComicFilter(request, filter);

            return(Execute <ComicResult>(request));
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Limited to the 1 comic ordered by Name Ascending
        /// </summary>
        /// <param name="title"></param>
        /// <returns></returns>
        public static Comic GetComic(string title)
        {
            var creds  = new Credentials();
            var client = new MarvelRestClient(creds.PublicKey, creds.PrivateKey);

            var filter = new ComicRequestFilter();

            filter.OrderBy(OrderResult.NameAscending);
            filter.Limit           = 1;
            filter.TitleStartsWith = title;

            var comicResponse = client.FindComics(filter);

            return(ResultsToList(comicResponse)[0]);
        }
Ejemplo n.º 6
0
        public JsonResult SomeActionMethod(NameViewModel postdata)
        {
            const string apiKey     = "YOUR API PUBLIC KEY";
            const string privateKey = "YOUR API PRIVATE KEY";

            var client = new MarvelRestClient(apiKey, privateKey);
            List <ResultViewModel> results = null;

            if (postdata.Type.ToLower() == "character")
            {
                var filter = new CharacterRequestFilter {
                    NameStartsWith = postdata.Name
                };
                filter.OrderBy(OrderResult.NameAscending);
                filter.Limit = 40;

                var response = client.GetCharacters(filter);

                if (response.Code == "200")
                {
                    results =
                        response.Data.Results.Select(res =>
                                                     new ResultViewModel {
                        Id = res.Id, Name = res.Name, Url = res.Urls.FirstOrDefault(t => t.Type == "detail").URL
                    }).ToList();
                }
            }
            else
            {
                var filter = new ComicRequestFilter {
                    TitleStartsWith = postdata.Name
                };
                filter.OrderBy(OrderResult.NameAscending);
                filter.Limit = 40;

                var response = client.GetComics(filter);

                if (response.Code == "200")
                {
                    results =
                        response.Data.Results.Select(res =>
                                                     new ResultViewModel {
                        Id = res.Id, Name = res.Title, Url = res.Urls.FirstOrDefault(t => t.Type == "detail").URL
                    }).ToList();
                }
            }
            return(Json(results));
        }
Ejemplo n.º 7
0
        public override async Task <FunctionResponse> ProcessMessageAsync(FunctionRequest request)
        {
            // Initialize the marvel api client
            var client = new MarvelRestClient(PUBLICKEY, PRIVATEKEY);

            // Initialize an avengers team
            var team = new Types.AvengerTeam();

            // Initialize character request filter
            var characterRequestFilter = new CharacterRequestFilter();

            // Query marvel api for desired avengers
            // TODO: refine this logic to assemble stronger team
            characterRequestFilter.OrderBy(OrderResult.NameAscending);
            characterRequestFilter.Limit = 1;
            var characterResponse = client.FindCharacters(characterRequestFilter);

            foreach (var character in characterResponse.Data.Results)
            {
                // Initialize a comic listing filter to determine power for each avenger
                var comicRequestFilter = new ComicRequestFilter();
                comicRequestFilter.AddCharacter(character.Id);

                // Form avenger object
                var currentAvenger = new Types.Avenger();
                currentAvenger.name  = character.Name;
                currentAvenger.id    = character.Id;
                currentAvenger.power = client.FindCharacterComics(character.Id.ToString(), comicRequestFilter).Data.Total;

                // Add avenger to team
                team.AddAvengerToTeam(currentAvenger);
            }

            var message = GameLogic.Methods.FormatBattlefieldId(request.RoundNumber, DateTime.UtcNow.ToString(), "AVENGERS", "DEFEND");

            await Methods.PostBattlefield(new Types.Item
            {
                Id    = message,
                Value = JsonConvert.SerializeObject(team.avengerTeam)
            });

            return(new FunctionResponse());
        }
Ejemplo n.º 8
0
 private void ParseComicFilter(IRestRequest request, ComicRequestFilter filter)
 {
     if (filter != null)
     {
         if (filter.Format.HasValue)
         {
             request.AddParameter("format", filter.Format.Value.GetDescription());
         }
         if (filter.FormatType.HasValue)
         {
             request.AddParameter("formatType", filter.FormatType.Value.GetDescription());
         }
         if (filter.NoVariants.HasValue)
         {
             request.AddParameter("noVariants", filter.NoVariants.Value.ToString().ToLower());
         }
         if (filter.DateDescriptor.HasValue)
         {
             request.AddParameter("dateDescriptor", filter.DateDescriptor.Value.GetDescription());
         }
         if (filter.DateRange.HasValue())
         {
             request.AddParameter("dateRange", filter.DateRange);
         }
         if (filter.Title.HasValue())
         {
             request.AddParameter("title", filter.Title);
         }
         if (filter.TitleStartsWith.HasValue())
         {
             request.AddParameter("titleStartsWith", filter.TitleStartsWith);
         }
         if (filter.StartYear.HasValue)
         {
             request.AddParameter("startYear", filter.StartYear.Value);
         }
         if (filter.IssueNumber.HasValue)
         {
             request.AddParameter("issueNumber", filter.IssueNumber.Value);
         }
         if (filter.DiamondCode.HasValue())
         {
             request.AddParameter("diamondCode", filter.DiamondCode);
         }
         if (filter.DigitalId.HasValue)
         {
             request.AddParameter("digitalId", filter.DigitalId.Value);
         }
         if (filter.UPC.HasValue())
         {
             request.AddParameter("upc", filter.UPC);
         }
         if (filter.ISBN.HasValue())
         {
             request.AddParameter("isbn", filter.ISBN);
         }
         if (filter.EAN.HasValue())
         {
             request.AddParameter("ean", filter.EAN);
         }
         if (filter.ISSN.HasValue())
         {
             request.AddParameter("issn", filter.ISSN);
         }
         if (filter.HasDigitalIssue.HasValue)
         {
             request.AddParameter("hasDigitalIssue", filter.HasDigitalIssue.ToString().ToLower());
         }
         if (filter.ModifiedSince.HasValue)
         {
             request.AddParameter("modifiedSince", filter.ModifiedSince.Value.ToString("yyyy-MM-dd"));
         }
         if (filter.Creators.HasValue())
         {
             request.AddParameter("creators", filter.Creators);
         }
         if (filter.Characters.HasValue())
         {
             request.AddParameter("characters", filter.Characters);
         }
         if (filter.Series.HasValue())
         {
             request.AddParameter("series", filter.Series);
         }
         if (filter.Events.HasValue())
         {
             request.AddParameter("events", filter.Events);
         }
         if (filter.Stories.HasValue())
         {
             request.AddParameter("stories", filter.Stories);
         }
         if (filter.SharedAppearances.HasValue())
         {
             request.AddParameter("sharedAppearances", filter.SharedAppearances);
         }
         if (filter.Collaborators.HasValue())
         {
             request.AddParameter("collaborators", filter.Collaborators);
         }
         if (filter.ResultSetOrder.HasValue())
         {
             request.AddParameter("orderBy", filter.ResultSetOrder);
         }
         if (filter.Limit.HasValue)
         {
             request.AddParameter("limit", filter.Limit.Value);
         }
         if (filter.Offset.HasValue)
         {
             request.AddParameter("offset", filter.Offset.Value);
         }
     }
 }