예제 #1
0
        private void btnSendArtisanRequest_Click(object sender, RoutedEventArgs e)
        {
            tbJsonResponse.Clear();
            ArtisanInfo artisanInfoResponse = DiabloService.GetArtisanInfo(RequestParameters.REGIONS.EU, RequestParameters.ARTISANS.BLACKSMITH, "en_GB", tbApiKey.Text);
            string      output = JsonConvert.SerializeObject(artisanInfoResponse, Formatting.Indented, new JsonSerializerSettings {
                NullValueHandling = NullValueHandling.Ignore
            });

            tbJsonResponse.Text = output;
        }
        /// <summary>
        /// Returns artisan information
        /// </summary>
        /// <param name="region">Player region</param>
        /// <param name="artisan">Chosen artisan</param>
        /// <param name="locale">Language code (locale)</param>
        /// <returns></returns>
        public static ArtisanInfo GetArtisanInfo(RequestParameters.REGIONS region, RequestParameters.ARTISANS artisan, string locale, string apiKeyValue)
        {
            using (HttpWebResponse response = RequestHandler.CreateArtisanRequest(region, Enum.GetName(typeof(RequestParameters.ARTISANS), artisan).ToLower(), locale, apiKeyValue))
            {
                if (response.StatusCode != HttpStatusCode.OK)
                {
                    throw new Exception(String.Format("Server error (HTTP {0}: {1}).", response.StatusCode, response.StatusDescription));
                }

                DataContractJsonSerializer jsonSerializer = new DataContractJsonSerializer(typeof(ArtisanInfo));
                object      objResponse  = jsonSerializer.ReadObject(response.GetResponseStream());
                ArtisanInfo jsonResponse = objResponse as ArtisanInfo;
                return(jsonResponse);
            }
        }
예제 #3
0
 private static bool CheckArtisan(ArtisanInfo info)
 {
     return(info != null &&
            info.CharacterId != 0 &&
            IsValidInGameName(info.CharacterName, !info.IsValid));
 }