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); }
/// <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)); }
/// <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)); }
/// <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)); }
/// <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]); }
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)); }
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()); }
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); } } }