public static async Task <T> GetJsonRead <T>(string JsonQuary, IJsonDeserializer <T> jsonDeserializer = null) { try { // ask for Json string Json = ""; bool success = false; await Task.Run(() => { Parallel.Invoke(() => { // for no internet connection // or bad Json quary Thread.Sleep(5000); if (!success) { throw new Exception(); } }, async() => { Json = await ApiClient.HttpClient.GetStringAsync(JsonQuary); success = true; }); }); //return final variable return(jsonDeserializer == null?JsonConvert.DeserializeObject <T>(Json) : jsonDeserializer.Deserialize(Json)); } catch { Console.WriteLine("Something Went Wrong.. Please Try Again."); return(default);
public PhotoRepository(IOptions <ConfigSettings> settings, HttpClient client, IJsonDeserializer jsonDeserializer) { _client = client; _jsonDeserializer = jsonDeserializer; _settings = settings.Value; ConfigureHttpClient(_client); }
/// <summary> /// Deserialize a JSON array into a collection. /// </summary> /// <param name="deserializer">The deserializer to utilize when deserializing nested objects.</param> /// <param name="type">The type of the collection to create.</param> /// <param name="jsonArray">The JSON array to deserialize from.</param> /// <returns>The collection that represents the JSON array.</returns> static ICollection DeserializeCollection(IJsonDeserializer deserializer, Type type, JsonArray jsonArray) { if (TypeHelper.TryGetCollectionType(type, out var collectionType) == false) { throw new JsonException("Can not deserialize a JSON array to a type that doesnt support ICollection<T>."); } var method = collectionType .GetTypeInfo() .DeclaredMethods .FirstOrDefault(m => m.DeclaringType == collectionType && m.Name == "Add"); var elementType = collectionType.GenericTypeArguments[0]; var collection = (ICollection)Activator.CreateInstance(type); foreach (var jsonValue in jsonArray) { var value = deserializer.DeserializeValue(elementType, jsonValue); method.Invoke(collection, new[] { value }); } return(collection); }
public YourlsClient( Uri apiUri, IAuthenticationHandler authenticationHandler, HttpClient httpClient, IJsonDeserializer jsonDeserializer ) { if (apiUri is null) { throw new ArgumentNullException(nameof(apiUri)); } if (authenticationHandler is null) { throw new ArgumentNullException(nameof(authenticationHandler)); } if (httpClient is null) { throw new ArgumentNullException(nameof(httpClient)); } if (jsonDeserializer is null) { throw new ArgumentNullException(nameof(jsonDeserializer)); } ApiUri = apiUri; AuthenticationHandler = authenticationHandler; HttpClient = httpClient; JsonDeserializer = jsonDeserializer; HttpMethod = HttpMethod.Get; }
public YourlsClient( string apiUri, IAuthenticationHandler authenticationHandler, IJsonDeserializer jsonDeserializer ) : this(new Uri(apiUri), authenticationHandler, new HttpClient(), jsonDeserializer) { }
public CompositeMessageHandler(IEnumerable <ISingleMessageTypeHandler> messageHandlers, IJsonDeserializer jsonDeserializer, ILogger logger) { _jsonDeserializer = jsonDeserializer; _logger = logger; _handlers = messageHandlers.ToDictionary(x => x.SupportedType, x => x); }
public ForeignExchangeService(IJsonDeserializer jsonDeserializer, IForeignExchangeApiCaller foreignExchangeApiCaller , IMemoryCache cache, IDateTimeProvider dateTimeProvider) { this.cache = cache; this.jsonDeserializer = jsonDeserializer; this.dateTimeProvider = dateTimeProvider; this.foreignExchangeApiCaller = foreignExchangeApiCaller; }
public AlbumRepository(HttpClient client, IOptions <ConfigSettings> settings, IJsonDeserializer jsonDeserializer, IPhotoRepository photoService) { _client = client; _jsonDeserializer = jsonDeserializer; _photoService = photoService; _settings = settings.Value; ConfigureHttpClient(_client); }
public DeviantArtApi(HttpClient client, Credentials credentials, IJsonDeserializer deserializer, ILogger <DeviantArtApi> logger) { _client = client; _credentials = credentials; _deserializer = deserializer; _logger = logger; _token = new AccessToken(); }
public JsonReader(IStreamReader streamReaderWrapper, IJsonDeserializer jsonDeserializerWrapper) { Guard.WhenArgument(streamReaderWrapper, "JsonReader").IsNull().Throw(); Guard.WhenArgument(jsonDeserializerWrapper, "JsonReader").IsNull().Throw(); this.streamReaderWrapper = streamReaderWrapper; this.jsonDeserializerWrapper = jsonDeserializerWrapper; }
public static object DeserializeProperty( IJsonDeserializer deserializer, JsonElement element, string propertyName) { return(element.TryGetProperty(propertyName, out var propertyValue) ? deserializer.Deserialize(propertyValue) : null); }
public NewsList( IJsonDeserializer jsonDeserializer, IHttpClientService httpClientFactory, IServiceModelFactory modelFactory) { this.jsonDeserializer = jsonDeserializer; this.httpClientFactory = httpClientFactory; this.modelFactory = modelFactory; }
public ConfigReader(ITextFileReader fileReader, IJsonDeserializer jsonDeserializer) { if (fileReader == null) throw new ArgumentNullException(nameof(fileReader)); _fileReader = fileReader; if (jsonDeserializer == null) throw new ArgumentNullException(nameof(jsonDeserializer)); _jsonDeserializer = jsonDeserializer; }
public VehicleLookUp( HttpClient client, IJsonDeserializer jsonDeserializer, IOptions <ConfigSettings> settings ) { _client = client; _jsonDeserializer = jsonDeserializer; _settings = settings.Value; ConfigureHttpClient(_client); }
public TmdbEasyClient(TmdbEasyOptions options) { Options = options ?? throw new ArgumentNullException(nameof(options)); _jsonDeserializer = options.JsonDeserializer; _httpClient = new HttpClient() { BaseAddress = new Uri(Options.UseSsl ? Constants.TmdbUrl3Ssl : Constants.TmdbUrl3) }; }
/// <summary> /// Constructor /// </summary> /// <param name="options">options to initialize</param> public EtcdClient(EtcdClientOpitions options) { if (options == null) throw new ArgumentNullException("options"); if (options.Urls == null || options.Urls.Length == 0) throw new ArgumentException("`EtcdClientOpitions.Urls` does not contain valid url"); WebRequestHandler handler = new WebRequestHandler() { UseProxy = options.UseProxy, AllowAutoRedirect = false, AllowPipelining = true, CachePolicy = new HttpRequestCachePolicy(HttpRequestCacheLevel.NoCacheNoStore), }; if (options.X509Certificate != null) handler.ClientCertificates.Add(options.X509Certificate); AuthenticationHeaderValue authenticationHeaderValue = null; if( !string.IsNullOrWhiteSpace(options.Username) && !string.IsNullOrWhiteSpace(options.Password) ) { string auth = string.Format("{0}:{1}", options.Username, options.Password); authenticationHeaderValue = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(ASCIIEncoding.ASCII.GetBytes(auth))); } _jsonDeserializer = options.JsonDeserializer == null ? new DefaultJsonDeserializer() : options.JsonDeserializer; if (options.IgnoreCertificateError) handler.ServerCertificateValidationCallback = (sender, certificate, chain, sslPolicyErrors) => { return true; }; HttpClientEx [] httpClients = options.Urls.Select(u => { if (string.IsNullOrWhiteSpace(u)) throw new ArgumentNullException("`urls` array contains empty url"); HttpClientEx httpClient = new HttpClientEx(handler); httpClient.BaseAddress = new Uri(u); httpClient.DefaultRequestHeaders.Authorization = authenticationHeaderValue; return httpClient; }).ToArray(); // make the clients as a ring, so that we can try the next one when one fails if( httpClients.Length > 1 ) { for( int i = httpClients.Length - 2; i >= 0; i--) { httpClients[i].Next = httpClients[i + 1]; } } httpClients[httpClients.Length - 1].Next = httpClients[0]; // pick a client randomly _currentClient = httpClients[DateTime.UtcNow.Ticks % httpClients.Length]; }
public OAuthClientSettings(string redirectUrl = null, string defaultAccountName = "TestAccount", IJsonDeserializer deserializer = null, string encryptionChannel = null, string redirectResponseRedirectTo = null, string redirectResponseText = null) { RedirectUrl = redirectUrl; //it might be set later DefaultAccountName = defaultAccountName; JsonDeserializer = deserializer ?? new JsonDeserializer(); EncryptionChannel = encryptionChannel; RedirectResponseRedirectsTo = redirectResponseRedirectTo; RedirectResponseText = redirectResponseText; }
/// <summary> /// Deserialize a JSON array into an array. /// </summary> /// <param name="deserializer">The deserializer to utilize when deserializing nested objects.</param> /// <param name="type">The type of the array.</param> /// <param name="jsonArray">The JSON array to deserialize from.</param> /// <returns>The collection that represents the JSON array.</returns> static Array DeserializeArray(IJsonDeserializer deserializer, Type type, JsonArray jsonArray) { var array = Array.CreateInstance(type.GetElementType(), jsonArray.Count); for (var i = 0; i < jsonArray.Count; i++) { var value = deserializer.DeserializeValue(type.GetElementType(), jsonArray[i]); array.SetValue(value, i); } return(array); }
/// <summary> /// Deserialize a JSON object. /// </summary> /// <param name="deserializer">The deserializer to utilize when deserializing nested objects.</param> /// <param name="type">The type of the object to deserialize to.</param> /// <param name="jsonValue">The JSON value to deserialize from.</param> /// <returns>The CLR object that represents the JSON object.</returns> object DeserializeObject(IJsonDeserializer deserializer, Type type, JsonValue jsonValue) { if (_contractResolver.TryResolve(type, out var contract) == false) { throw new HypermediaJsonException($"Could not resolve a contract for {type}."); } var instance = Activator.CreateInstance(type); DeserializeObject(deserializer, (JsonObject)jsonValue, contract, instance); return(instance); }
public WxTeamsApi(IWxTeamsClient teamsClient, IJsonDeserializer serializer, ILogger <WxTeamsApi> logger) { _logger = logger ?? throw new ArgumentNullException(nameof(logger)); TeamsClient = teamsClient ?? throw new ArgumentNullException(nameof(teamsClient)); if (serializer == null) { throw new ArgumentNullException(nameof(serializer)); } serializer.SetApi(this); }
static Transformer() { _typeCreator = new TypeCreator(); _typeAnalyzer = new TypeAnalyzer(); _typeMapper = new EverythingTypeMapper(_typeAnalyzer); _mappingRegistry = new MappingRegistry(_typeMapper); _jsonSerializer = new JsonSerializer(_mappingRegistry); _jsonDeserializer = new JsonDeserializer(_mappingRegistry, _typeCreator); _binarySerializer = new BinarySerializer(_mappingRegistry); _binaryDeserializer = new BinaryDeserializer(_mappingRegistry, _typeCreator); _xmlSerializer = new XmlSerializer(_mappingRegistry); _xmlDeserializer = new XmlDeserializer(_mappingRegistry, _typeCreator); }
public void Setup() { var typeCreator = new TypeCreator(); var typeAnalyzer = new TypeAnalyzer(); var typeMapper = new EverythingTypeMapper(typeAnalyzer); var mappingRegistry = new MappingRegistry(typeMapper); _binarySerializer = new BinarySerializer(mappingRegistry); _binaryDeserializer = new BinaryDeserializer(mappingRegistry, typeCreator); _jsonSerializer = new JsonSerializer(mappingRegistry); _jsonDeserializer = new JsonDeserializer(mappingRegistry, typeCreator); _xmlSerializer = new XmlSerializer(mappingRegistry); _xmlDeserializer = new XmlDeserializer(mappingRegistry, typeCreator); }
public static void InitCore(string[] args, IJsonDeserializer jsonDeserializer, IDispatcher dispatcher) { Logger.Raw(@".__ . . | \ _. .|*| . |__/(_]\_||||\_| ._| ._|"); Logger.Raw(args[0]); CreateDirectories(); // 创建目录 LoadSecret(); // 加载配置 // signup _jsonDeserializer = jsonDeserializer; _dispatcher = dispatcher; Startup.RunConsole(); PluginManager.LoadAllPlugins(args); }
/// <summary> /// Deserialize the fields for the given instance. /// </summary> /// <param name="deserializer">The deserializer to utilize when deserializing nested objects.</param> /// <param name="jsonObject">The JSON object to deserialize from.</param> /// <param name="fields">The list of fields to deserialize.</param> /// <param name="instance">The instance to deserialize into.</param> void DeserializeFields(IJsonDeserializer deserializer, JsonObject jsonObject, IReadOnlyList <IField> fields, object instance) { foreach (var member in jsonObject.Members) { var field = fields.SingleOrDefault(f => String.Equals(f.Name, _fieldNamingStrategy.ResolveName(member.Name), StringComparison.OrdinalIgnoreCase)); if (field != null && ShouldDeserializeField(field)) { field.SetValue(instance, deserializer.DeserializeValue(field.Accessor.ValueType, member.Value)); continue; } if (instance is IJsonExtension jsonExtension) { jsonExtension.Data = jsonExtension.Data ?? new List <JsonMember>(); jsonExtension.Data.Add(member); } } }
public void SetUp() { _services = new ServiceCollection(); _services.AddOptions(); _configurationRoot = Helpers.TestHelper.GetIConfigurationRoot(TestContext.CurrentContext.TestDirectory); _services.Configure <ConfigSettings>(_configurationRoot.GetSection("VehicleLookConfig")); _services.AddRegisteredTypes(); //services.AddApiKey(configurationRoot); _serviceProvider = _services.BuildServiceProvider(); _client = _serviceProvider.GetRequiredService <HttpClient>(); _config = _serviceProvider.GetRequiredService <IOptions <ConfigSettings> >(); _deserialiser = _serviceProvider.GetRequiredService <IJsonDeserializer>(); }
public MeetingNameFormatterFactory(IJsonSerializer nameInfoSerializer, IJsonDeserializer nameInfoDeserializer) { if (nameInfoSerializer == null) { throw new ArgumentNullException(nameof(nameInfoSerializer)); } if (nameInfoDeserializer == null) { throw new ArgumentNullException(nameof(nameInfoDeserializer)); } _formatters = new Dictionary <int, IMeetingNameFormatter> { { 1, new StraightMeetingNameFormatter(nameInfoSerializer, nameInfoDeserializer) }, { 2, new CourseIdPrefixMeetingNameFormatter(nameInfoSerializer, nameInfoDeserializer) }, { 3, new CourseNumPrefixMeetingNameFormatter(nameInfoSerializer, nameInfoDeserializer) }, { 4, new CourseNumPrefixIdSuffixMeetingNameFormatter(nameInfoSerializer, nameInfoDeserializer) }, { 5, new CourseNumPrefixDateTimeSuffixMeetingNameFormatter(nameInfoSerializer, nameInfoDeserializer) }, { 6, new CourseNumPrefixDateTimeSuffixMeetingNameFormatter(nameInfoSerializer, nameInfoDeserializer, "dd/MM/yy") }, }; }
public void Initialize(ClassLoader classLoader) { // resolve underlying type try { _underlyingType = classLoader.GetClass(_detail.UnderlyingClassName); } catch (TypeLoadException ex) { throw new EPException("Failed to load Json underlying class: " + ex.Message, ex); } // resolve delegate try { _delegateType = classLoader.GetClass(_detail.DelegateClassName); _delegate = TypeHelper.Instantiate <IJsonDelegate>(_delegateType); } catch (TypeLoadException e) { throw new EPException("Failed to find class: " + e.Message, e); } // resolve deserializer try { _deserializerType = classLoader.GetClass(_detail.DeserializerClassName); _deserializer = TypeHelper.Instantiate <IJsonDeserializer>(_deserializerType); } catch (TypeLoadException e) { throw new EPException("Failed to find class: " + e.Message, e); } // resolve serializer try { _serializerType = classLoader.GetClass(_detail.SerializerClassName); _serializer = TypeHelper.Instantiate <IJsonSerializer>(_serializerType); } catch (TypeLoadException e) { throw new EPException("Failed to find class: " + e.Message, e); } //_serializationContext = TypeHelper.Instantiate<JsonSerializationContext>(deserializerFactoryType); }
/// <summary> /// Deserialize a JSON object. /// </summary> /// <param name="deserializer">The deserializer to utilize when deserializing nested objects.</param> /// <param name="type">The type of the object to deserialize to.</param> /// <param name="jsonObject">The JSON object to deserialize from.</param> /// <returns>The CLR object that represents the JSON object.</returns> object DeserializeObject(IJsonDeserializer deserializer, Type type, JsonObject jsonObject) { var entity = Activator.CreateInstance(type); foreach (var member in jsonObject.Members) { var property = type.GetRuntimeProperty(_fieldNamingStrategy.ResolveName(member.Name)); if (property != null) { property.SetValue(entity, deserializer.DeserializeValue(property.PropertyType, member.Value)); continue; } if (entity is IJsonExtension jsonExtension) { jsonExtension.Data = jsonExtension.Data ?? new List <JsonMember>(); jsonExtension.Data.Add(member); } } return(entity); }
/// <summary> /// Deserialize a JSON value to a defined CLR type. /// </summary> /// <param name="deserializer">The deserializer to utilize when deserializing nested objects.</param> /// <param name="type">The CLR type to deserialize the JSON value to.</param> /// <param name="jsonValue">The JSON value to deserialize.</param> /// <returns>The object that represents the CLR version of the given JSON value.</returns> public object DeserializeValue(IJsonDeserializer deserializer, Type type, JsonValue jsonValue) { var jsonArray = (JsonArray)jsonValue; if (type.IsArray) { return(DeserializeArray(deserializer, type, jsonArray)); } if (TypeHelper.IsCollection(type)) { return(DeserializeCollection(deserializer, type, jsonArray)); } if (CanDeserializeAsListOfT(type)) { type = typeof(List <>).MakeGenericType(type.GenericTypeArguments[0]); return(DeserializeValue(deserializer, type, jsonArray)); } throw new NotSupportedException(); }
public T GetObject <T>(IResponse response = null, IHttpClient http = null, IJsonDeserializer deserializer = null) where T : ApiBase { if (base.Exist <T>()) { UnregisterObject <T>(); } ApiBase api = GetObject <T>(); if (response != null) { api.Response = response; } if (http != null) { api.HttpClient = http; } if (deserializer != null) { api.Deserializer = deserializer; } return((T)api); }
public TeamsClient(IJsonDeserializer serializer, IWxBaseClient client) { _client = client; _serializer = serializer ?? throw new ArgumentNullException(nameof(serializer)); }
public YourlsClient( string apiUri, IJsonDeserializer jsonDeserializer ) : this(apiUri, new NoAuthentication(), jsonDeserializer) { }