Exemplo n.º 1
0
        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);
Exemplo n.º 2
0
 public PhotoRepository(IOptions <ConfigSettings> settings, HttpClient client, IJsonDeserializer jsonDeserializer)
 {
     _client           = client;
     _jsonDeserializer = jsonDeserializer;
     _settings         = settings.Value;
     ConfigureHttpClient(_client);
 }
Exemplo n.º 3
0
        /// <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);
        }
Exemplo n.º 4
0
        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;
        }
Exemplo n.º 5
0
 public YourlsClient(
     string apiUri,
     IAuthenticationHandler authenticationHandler,
     IJsonDeserializer jsonDeserializer
     ) : this(new Uri(apiUri), authenticationHandler, new HttpClient(), jsonDeserializer)
 {
 }
Exemplo n.º 6
0
 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;
 }
Exemplo n.º 8
0
 public AlbumRepository(HttpClient client, IOptions <ConfigSettings> settings, IJsonDeserializer jsonDeserializer, IPhotoRepository photoService)
 {
     _client           = client;
     _jsonDeserializer = jsonDeserializer;
     _photoService     = photoService;
     _settings         = settings.Value;
     ConfigureHttpClient(_client);
 }
Exemplo n.º 9
0
        public DeviantArtApi(HttpClient client, Credentials credentials, IJsonDeserializer deserializer, ILogger <DeviantArtApi> logger)
        {
            _client       = client;
            _credentials  = credentials;
            _deserializer = deserializer;
            _logger       = logger;

            _token = new AccessToken();
        }
Exemplo n.º 10
0
        public JsonReader(IStreamReader streamReaderWrapper, IJsonDeserializer jsonDeserializerWrapper)
        {
            Guard.WhenArgument(streamReaderWrapper, "JsonReader").IsNull().Throw();

            Guard.WhenArgument(jsonDeserializerWrapper, "JsonReader").IsNull().Throw();

            this.streamReaderWrapper     = streamReaderWrapper;
            this.jsonDeserializerWrapper = jsonDeserializerWrapper;
        }
Exemplo n.º 11
0
 public static object DeserializeProperty(
     IJsonDeserializer deserializer,
     JsonElement element,
     string propertyName)
 {
     return(element.TryGetProperty(propertyName, out var propertyValue)
         ? deserializer.Deserialize(propertyValue)
         : null);
 }
Exemplo n.º 12
0
 public NewsList(
     IJsonDeserializer jsonDeserializer,
     IHttpClientService httpClientFactory,
     IServiceModelFactory modelFactory)
 {
     this.jsonDeserializer  = jsonDeserializer;
     this.httpClientFactory = httpClientFactory;
     this.modelFactory      = modelFactory;
 }
Exemplo n.º 13
0
        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;
        }
Exemplo n.º 14
0
 public VehicleLookUp(
     HttpClient client,
     IJsonDeserializer jsonDeserializer,
     IOptions <ConfigSettings> settings
     )
 {
     _client           = client;
     _jsonDeserializer = jsonDeserializer;
     _settings         = settings.Value;
     ConfigureHttpClient(_client);
 }
Exemplo n.º 15
0
        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)
            };
        }
Exemplo n.º 16
0
        /// <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];
        }
Exemplo n.º 17
0
 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;
 }
Exemplo n.º 18
0
 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;
 }
Exemplo n.º 19
0
        /// <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);
        }
Exemplo n.º 20
0
        /// <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);
        }
Exemplo n.º 21
0
        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);
        }
Exemplo n.º 22
0
        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);
        }
Exemplo n.º 23
0
        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);
        }
Exemplo n.º 24
0
        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);
        }
Exemplo n.º 25
0
        /// <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>();
        }
Exemplo n.º 27
0
        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") },
            };
        }
Exemplo n.º 28
0
        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);
        }
Exemplo n.º 29
0
        /// <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);
        }
Exemplo n.º 30
0
        /// <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();
        }
Exemplo n.º 31
0
        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);
        }
Exemplo n.º 32
0
 public TeamsClient(IJsonDeserializer serializer, IWxBaseClient client)
 {
     _client     = client;
     _serializer = serializer ?? throw new ArgumentNullException(nameof(serializer));
 }
Exemplo n.º 33
0
 public YourlsClient(
     string apiUri,
     IJsonDeserializer jsonDeserializer
     ) : this(apiUri, new NoAuthentication(), jsonDeserializer)
 {
 }