コード例 #1
0
ファイル: HomeController.cs プロジェクト: rroa/marvel-csharp
        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));
        }
コード例 #2
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());
        }
コード例 #3
0
        public IActionResult Index(/*RestResponse restResponse*//*RestRequest request*//*NameViewModel postdata*/)
        {
            const string apiKey     = "1f8c669bfb6d6b86aa65400c8f3ad03d";
            const string privateKey = "b7e37b0815b570c2f84f0267060b0637698ed06a";

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



            //NameViewModel postdata = "hulk";

            //if (postdata.Type.ToLower() == "character")
            //{
            var filter = new CharacterRequestFilter {
                NameStartsWith = "hulk"
            };

            filter.OrderBy(OrderResult.NameAscending);
            //filter.Limit = 40;
            filter.Limit = 1;


            var response = client.FindCharacters(filter);

            //if (response.Code == "200")
            //{
            //    results =
            //    response.Data.Results.Select(res =>
            //        new CharactersInResultViewModel { Id = res.Id, Description = res.Description, Name = res.Name, Url = res.Urls.FirstOrDefault(t => t.Type == "detail").URL }).ToList();
            //}


            results =
                response.Data.Results.Select(res =>
                                             new CharactersInResultViewModel {
                StoryID = /*res.Stories.Items.Equals(*/ "1009351" /*).ToString()*/, /**StoryID = res.Stories. */ Id = res.Id, Description = res.Description, Name = res.Name, Url = res.Urls.FirstOrDefault(t => t.Type == "detail").URL
            }).ToList();



            //            else
            //            {

            //                    if (response.Code == "200")
            //            {
            //            results =
            //            response.Data.Results.Select(res =>
            //                new CharactersInResultViewModel { Id = res.Id, Description = res.Description, Name = res.Name, Url = res.Urls.FirstOrDefault(t => t.Type == "detail").URL
            //    }).ToList();
            //}


            //results =
            //            response.Data.Results.Select(res =>
            //                new CharactersInResultViewModel { StoryID = /*res.Stories.Items.Equals(*/"1009351"/*).ToString()*/,/**StoryID = res.Stories. */Id = res.Id, Description = res.Description, Name = res.Name, Url = res.Urls.FirstOrDefault(t => t.Type == "detail").URL }).ToList();


            List <ResultViewModel> realresults = new List <ResultViewModel>();

            //ResultViewModel realresults;


            realresults =
                response.Data.Results.Select(res =>
                                             new ResultViewModel {
                Id = res.Id, Description = res.Description, Name = res.Name, Url = res.Urls.FirstOrDefault(t => t.Type == "detail").URL
            }).ToList();

            realresults.FirstOrDefault();



            //else
            //{

            //if (response.Code == "200")
            //{
            //results =
            //response.Data.Results.Select(res =>
            //    new ResultViewModel { Id = res.Id, Description = res.Description, Name = res.Name, Url = res.Urls.FirstOrDefault(t => t.Type == "detail").URL }).ToList();
            //    }


            //results =
            //response.Data.Results.Select(res =>
            //    new CharactersInResultViewModel { StoryID = /*res.Stories.Items.Equals(*/"1009351"/*).ToString()*/,/**StoryID = res.Stories. */Id = res.Id, Description = res.Description, Name = res.Name, Url = res.Urls.FirstOrDefault(t => t.Type == "detail").URL }).ToList();


            //}
            //else
            //{

            FindStoryCharacters();

            //ViewBag.Message = (List<CharactersInResultViewModel>)request;

            /*ViewBag.Message =*/ /*(List<CharactersInResultViewModel>)*//*request;*/

            /* ViewBag.Message =*/ /*(List<CharactersInResultViewModel>)*//*restResponse;*/


            //ViewBag.Message = results;



            //var comicFilter = new ComicRequestFilter { TitleStartsWith = "hulk" };
            //comicFilter.OrderBy(OrderResult.NameAscending);
            //comicFilter.Limit = 40;
            ////comicFilter.Limit = 1;

            //var comicFilterresponse = client.FindComics(comicFilter);

            ////if (response.Code == "200")
            ////{
            //results =
            //response.Data.Results.Select(res =>
            //    new CharactersInResultViewModel { /*Characters = Marvel.Api.Model.DomainObjects.Story.*/ Id = res.Id, Description = res.Description, Name = res.Name, Url = res.Urls.FirstOrDefault(t => t.Type == "detail").URL }).ToList();
            ////}
            //var firstResultDescription = results.FirstOrDefault();

            //var characterList =

            //var characterList = firstResultDescription.Description.

            //var Filter = new StoryRequestFilter { };
            //Filter.OrderBy(OrderResult.NameAscending);
            //Filter.Limit = 40;
            ////filter.Limit = 1;

            //StoryResult storyFilterresponse = client.FindStory("1009351");  /*client.FindStoryCharacters("1009351");*/

            //resultsCharactersInAStory =
            //storyFilterresponse.Data.Results.Select(res =>
            //    new CharactersInResultViewModel { /*Characters = res.Stories., */Id = res.Id, Description = res.Description/*, Name = res.Name, Url = res.Urls.FirstOrDefault(t => t.Type == "detail").URL */}).ToList();
            ////    }



            //storyFilterresponse.Data.Results.

            //resultsCharactersInAStory =
            //storyFilterresponse.Data.Results.Select(res =>
            //    new CharactersInResultViewModel { /*Characters = res.Stories., */Id = res.Id, Description = res.Description/*, Name = res.Name, Url = res.Urls.FirstOrDefault(t => t.Type == "detail").URL */}).ToList();
            ////    }

            //if (response.Code == "200")
            //{
            //results =
            //response.Data.Results.Select(res =>
            //    new ResultViewModel { Id = res.Id, Description = res.Description, Name = res.Name, Url = res.Urls.FirstOrDefault(t => t.Type == "detail").URL }).ToList();
            ////    }
            ////}

            List <CharactersInResultViewModel> charactersResults = null;

            charactersResults =
                response.Data.Results.Select(res =>
                                             new CharactersInResultViewModel {
                Name = res.Name
            }).ToList();
            //    }
            //}

            var storyFilterresponseCharacterList = charactersResults;

            var baseAddress = new Uri("http://importmarvel.com/");

            using (var httpClient = new HttpClient
            {
                BaseAddress = baseAddress
            })
            {
                using (var allCharactersInAStory = /*await */ httpClient.GetAsync("api/characters"))
                {
                    string allCharactersInAStoryData = allCharactersInAStory.Result.ToString();

                    ViewBag.Message = allCharactersInAStoryData;

                    return(View(allCharactersInAStoryData));
                }

                //ViewBag.Message = allCharactersInAStoryData;

                //ViewBag.Message = realresults;

                //return View(allCharactersInAStoryData);

                //return View(realresults);



                //ViewBag.Message = results;


                //return View(results);



                //ViewBag.Message = resultsCharactersInAStory;


                //return View(resultsCharactersInAStory);



                //return View(storyFilterresponse);


                //ViewBag.Message = storyFilterresponseCharacterList;

                //return Json(storyFilterresponseCharacterList);

                //return View("Index", restResponse);

                //return View(storyFilterresponseCharacterList);

                //return Json(results);



                //[HttpPost]
                //[HttpGet]
                //public IActionResult Index(/*NameViewModel postdata*/)
                //{

                //    const string apiKey = "1f8c669bfb6d6b86aa65400c8f3ad03d";
                //    const string privateKey = "b7e37b0815b570c2f84f0267060b0637698ed06a";

                //    const string characterName = "hulk";

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

                //    //if (postdata.Type.ToLower() == "character")
                //    //{
                //    var filter = new StoryRequestFilter { /*Characters.Equals == The Hulk*//*NameStartsWith = postdata.Name*/ };
                //    filter.OrderBy(OrderResult.NameAscending);
                //    //filter.Comics.Contains("hulk");
                //    //filter.Comics.Where(res.Id == 30)
                //    //filter.Series.
                //    filter.Limit = 1;

                //    //var response = client.FindCharacters(filter);

                //    var response = client.FindStories(filter);

                //    //if (response.Code == "200")
                //    //    {
                //    //results =
                //    //response.Data.Results./*Where(results.*//*Where(response.Data.Results.).*/Select(res =>
                //    //                //new ResultViewModel { Id = 30/*res.Id*/, Description = res.Description,  Name = "The second volume containing the Hulk\u0027s early adventures with appearances by the Sub-Mariner, the Mandarin, Ka-Zar and Nick Fury" /*res.Title*/, Url = "http://gateway.marvel.com/v1/public/stories/30" /*res.ResourceURI*/ })./*Where(response.Data.Results.Id*//*.Where(res.Id == 30)*//*.*/ToList()/*.Where(Id == 30)*//*.FirstOrDefault*//*(*//*t => t.Type == "detail").URL }).ToList(*//*)*/;
                //    //                new ResultViewModel { Id = 30, Description = res.Description, Name = res.Title, Url = "http://gateway.marvel.com/v1/public/stories/30/" })./*Where(response.Data.Results.Id*//*.Where(res.Id == 30)*//*.*/ToList()/*.Where(Id == 30)*//*.FirstOrDefault*//*(*//*t => t.Type == "detail").URL }).ToList(*//*)*/;

                //    results =
                //            response.Data.Results.Select(res =>
                //                new ResultViewModel { Id = res.Id, Description = res.Description, Name = res.Title, Url = res.ResourceURI.FirstOrDefault().ToString() }).ToList();



                //    //}.

                //    //results.Where()

                //    //else
                //    //{
                //    //    var filter = new ComicRequestFilter { TitleStartsWith = postdata.Name };
                //    //    filter.OrderBy(OrderResult.NameAscending);
                //    //    filter.Limit = 40;

                //    //    var response = client.FindComics(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/*.ToList()*/);
                //    //return View(results);
                //}

                //return View();



                //[HttpPost]
                //public JsonResult SomeActionMethod(NameViewModel postdata)
                //{
                //    const string apiKey = "1f8c669bfb6d6b86aa65400c8f3ad03d";
                //    const string privateKey = "b7e37b0815b570c2f84f0267060b0637698ed06a";


                //    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.FindCharacters(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.FindComics(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 IActionResult Privacy()
                //{
                //    return View();
                //}
            }
        }
コード例 #4
0
        //     public CharacterResult FindCharacter(/*string characterId*/)
        //36         {
        //37             // Build request url
        //38             //
        //39             string requestUrl =
        //40                 string.Format("{0}/{1}", CharactersUrlSegment, "30");
        //41
        //42             var request = new RestRequest(requestUrl, Method.GET);
        //43
        //44             return /*Execute<CharacterResult>(request)*/;
        //45         }

        public IActionResult Index(/*byte[] byteBuffer*//*RestResponse restResponse*//*RestRequest request*//*NameViewModel postdata*/)
        {
            const string apiKey     = "1f8c669bfb6d6b86aa65400c8f3ad03d";
            const string privateKey = "b7e37b0815b570c2f84f0267060b0637698ed06a";

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



            var characterRequestTest = new CharacterResult();


            //FindCharacter(")


            ///*ComicResult*/ /*Marvel.Api.MarvelRestClient.*/FindCharacterComics("30"/*,ComicRequestFilter  filter = default(ComicRequestFilter)*/);
//)



            ////NameViewModel postdata = "hulk";

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



            ///*var*/
            //CharacterResult response = (client.FindCharacters(filter))/*.AsAByteString()*/;



            //var comicFilter = new ComicRequestFilter { TitleStartsWith = "hulk" };
            //comicFilter.OrderBy(OrderResult.NameAscending);
            //comicFilter.Limit = 40;
            //comicFilter.Limit = 1;


            var comicFilter = new CharacterRequestFilter {
                NameStartsWith = "hulk"                                          /*TitleStartsWith = "hulk"*/
            };

            comicFilter.OrderBy(OrderResult.NameAscending);
            comicFilter.Limit = 40;
            //comicFilter.Limit = 1;

            var comicFilterresponse = client.FindCharacters(comicFilter);


            //ComicResult /*Marvel.Marvel.Api.*/MarvelRestClient.FindCharacterComics("30"/*,ComicRequestFilter  filter = default(ComicRequestFilter)*/);


            //var comicFilterresponse = (client.FindCharacterComics/*FindComics*/(comicFilter.ToString()));



            //if (response.Code == "200")
            //{
            results =
                comicFilterresponse.Data.Results.Select(res =>
                                                        new CharactersInResultViewModel { /*Characters = Marvel.Api.Model.DomainObjects.Story.*/
                Id = res.Id, Description = res.Description, Name = res.Name, Url = res.Urls.FirstOrDefault(t => t.Type == "detail").URL
            }).ToList();
            //}



            //JToken token = filter;
            //var jTokenAsString = token.AsString();

            //docs.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/how-to-implement-and-call-a-custom-extension-method

            /// <summary>
            /// Gets string value from JToken
            /// </summary>
            /// <param name="token"></param>
            /// <returns></returns>
            ///
            /*public */
            //            static string /*MiscExtensions.*/(this JToken token)
            //            {
            //                return token.Type == JTokenType.String ? token.Value<string>() : token.ToString();
            //            }

            //            /// <summary>
            //            /// Gets string value from JToken
            //            /// </summary>
            //            /// <param name="token"></param>
            //            /// <returns></returns>
            //            /*public */static string AsString(this JToken token, CultureInfo culture)
            //            {
            //                var value = token as JValue;
            //                if (value != null)
            //                {
            //                    return (string)value.Value.ChangeType(typeof(string), culture);
            //                }

            //                return token.Type == JTokenType.String ? token.Value<string>() : token.ToString();
            //            }

            //            /// <summary>
            //            /// Converts a byte array to a string, using its byte order mark to convert it to the right encoding.
            //            /// http://www.shrinkrays.net/code-snippets/csharp/an-extension-method-for-converting-a-byte-array-to-a-string.aspx
            //            /// </summary>
            //            /// <param name="buffer">An array of bytes to convert</param>
            //            /// <returns>The byte as a string.</returns>
            //            /*public */static string AsString(this byte[] buffer)
            //            {
            //                if (buffer == null) return "";

            //                // Ansi as default
            //                Encoding encoding = Encoding.UTF8;

            //#if FRAMEWORK
            //			return encoding.GetString(buffer);
            //#else
            //                if (buffer == null || buffer.Length == 0)
            //                    return "";

            //                /*
            //                    EF BB BF		UTF-8
            //                    FF FE UTF-16	little endian
            //                    FE FF UTF-16	big endian
            //                    FF FE 00 00		UTF-32, little endian
            //                    00 00 FE FF		UTF-32, big-endian
            //                    */

            //                if (buffer[0] == 0xef && buffer[1] == 0xbb && buffer[2] == 0xbf)
            //                {
            //                    encoding = Encoding.UTF8;
            //                }
            //                else if (buffer[0] == 0xfe && buffer[1] == 0xff)
            //                {
            //                    encoding = Encoding.Unicode;
            //                }
            //                else if (buffer[0] == 0xfe && buffer[1] == 0xff)
            //                {
            //                    encoding = Encoding.BigEndianUnicode; // utf-16be
            //                }

            //                using (MemoryStream stream = new MemoryStream())
            //                {
            //                    stream.Write(buffer, 0, buffer.Length);
            //                    stream.Seek(0, SeekOrigin.Begin);
            //                    using (StreamReader reader = new StreamReader(stream, encoding))
            //                    {
            //                        return reader.ReadToEnd();
            //                    }
            //                }
            //#endif
            //            }



            var buffer = new byte[] { };

            //buffer = (client.FindCharacters(filter));

            //var response = (client.FindCharacters(filter))/*.AsString(buffer)*/;
            /*.ToString()*//*)*//*;.Data*/

            //response.ToString();,

            //response.ToString();

            //response.AsAByteString(/*buffer*//*buffer*/);

            //var token = client.FindCharacters(filter);
            //token.ToString();



            //var jTokenAsString = token.AsString();

            //if (response.Code == "200")
            //{
            //results =
            //response.Data.Results.Select(res =>
            //    new CharactersInResultViewModel { Id = res.Id, Description = res.Description, Name = res.Name, Url = res.Urls.FirstOrDefault(t => t.Type == "detail").URL }).ToList();
            ////}
            ///



            //Commented out 10.6.2021.
            //results =
            //comicFilterresponse.Data.Results.Select(res =>
            //    new CharactersInResultViewModel { Id = res.Id, Description = res.Description, Name = res.Name, Url = res.Urls.FirstOrDefault(t => t.Type == "detail").URL }).ToList();
            ////}



            //ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "alertMessage", "alert('Record Inserted Successfully')", true);

            ViewBag.Message = results /*comicFilterresponse*//*response*//*.ToString*//*()*/;

            ViewData["Response"] = results /*comicFilterresponse*//*response*/;

            return(View(results /*comicFilterresponse*//*response*//*response*/));
        }