Пример #1
0
        /// <summary>
        /// Initializes a new instance of the <see cref="ApiClient" /> class
        /// with default configuration.
        /// </summary>
        /// <param name="basePath">The base path.</param>
        public ApiClient(String basePath = Constants.BaseTestApiPath)
        {
            if (String.IsNullOrEmpty(basePath))
            {
                throw new ArgumentException("basePath cannot be empty");
            }

            RestClient          = new RestClient(basePath);
            Configuration       = Configuration.Default;
            _responseSerializer = new ResponseSerializer();
        }
        public static async Task <Response> Invoke(TService serviceInstance,
                                                   IResponseSerializer responseSerializer,
                                                   MethodInfo method,
                                                   object[] args)
        {
            Response result = new Response();

            try
            {
                if (method.ReturnType.IsGenericType && method.ReturnType.GetGenericTypeDefinition() == typeof(Task <>))
                {
                    Task task = null;

                    task = (Task)method.Invoke(serviceInstance, args);
                    await task
                    .ConfigureAwait(continueOnCapturedContext : false);

                    var resultProperty = task.GetType().GetProperty("Result");
                    result.ResponseObject = resultProperty.GetValue(task);
                }
                else if (method.ReturnType == typeof(Task))
                {
                    Task task = null;

                    task = (Task)method.Invoke(serviceInstance, args);

                    await task
                    .ConfigureAwait(continueOnCapturedContext : false);
                }
                else if (method.ReturnType.Name == "Void")
                {
                    method.Invoke(serviceInstance, args);
                }
                else
                {
                    result.ResponseObject = method.Invoke(serviceInstance, args);
                }
            }
            catch (System.Reflection.TargetInvocationException ex)
            {
                result.Success        = false;
                result.ResponseObject = new ExceptionWrapper(ex.InnerException);
            }
            catch (Exception ex)
            {
                result.Success        = false;
                result.ResponseObject = new ExceptionWrapper(ex);
            }

            return(result);
        }
Пример #3
0
        /// <summary>
        /// Initializes a new instance of the <see cref="ApiClient" /> class
        /// with default base path (https://apitest.cybersource.com).
        /// </summary>
        /// <param name="config">An instance of Configuration.</param>
        public ApiClient(Configuration config = null)
        {
            if (config == null)
            {
                Configuration = Configuration.Default;
            }
            else
            {
                Configuration = config;
            }

            RestClient          = new RestClient(Constants.BaseTestApiPath);
            _responseSerializer = new ResponseSerializer();
        }
Пример #4
0
 public RouteManager(IRouteParser RouteParser, IResponseSerializer Serializer)
 {
     if (RouteParser == null)
     {
         throw new ArgumentNullException(nameof(RouteParser));
     }
     if (Serializer == null)
     {
         throw new ArgumentNullException(nameof(Serializer));
     }
     this.routeParser      = RouteParser;
     this.serializer       = Serializer;
     getRouteDictionary    = new Dictionary <string, RouteBinding>();
     putRouteDictionary    = new Dictionary <string, RouteBinding>();
     postRouteDictionary   = new Dictionary <string, RouteBinding>();
     deleteRouteDictionary = new Dictionary <string, RouteBinding>();
 }
Пример #5
0
        public EndpointRequest(
            Action <IOwinContext, Func <string> > trace,
            IRequestRouter requestRouter,
            IOwinContext context,
            IDataCatalog dataCatalog,
            IDataDependencyFactory dataDependencyFactory,
            IRequestDeserializer deserializer,
            IResponseSerializer serializer,
            EndpointParameter[] parameters)
        {
            _trace                 = trace;
            _requestRouter         = requestRouter;
            _context               = context;
            _dataCatalog           = dataCatalog;
            _dataDependencyFactory = dataDependencyFactory;
            _deserializer          = deserializer;
            _serializer            = serializer;
            _parameters            = parameters;

            Success();
        }
 /// <summary>Maps a response serializer in Message Response Provider.</summary>
 /// <param name="builder">Hosted WOLF Client Service builder.</param>
 /// <param name="responseType">Type of response message.</param>
 /// <param name="serializer">Serializer to serialize and deserialize with.</param>
 /// <seealso cref="ResponseSerializerProvider"/>
 /// <seealso cref="ISerializerProvider{TKey, TSerializer}"/>
 /// <seealso cref="IResponseSerializer"/>
 /// <seealso cref="ResponseSerializerProviderOptions.Serializers"/>
 public static IHostedWolfClientServiceBuilder MapResponseSerializer(this IHostedWolfClientServiceBuilder builder, Type responseType, IResponseSerializer serializer)
 => builder.ConfigureResponseSerializerProvider(options => options.Serializers[responseType] = serializer);
 // response serializers
 /// <summary>Sets fallback response serializer in Message Response Provider.</summary>
 /// <param name="builder">Hosted WOLF Client Service builder.</param>
 /// <param name="serializer">Response serializer to fall back to.</param>
 /// <seealso cref="ResponseSerializerProvider"/>
 /// <seealso cref="ISerializerProvider{TKey, TSerializer}"/>
 /// <seealso cref="IResponseSerializer"/>
 /// <seealso cref="ResponseSerializerProviderOptions.FallbackSerializer"/>
 public static IHostedWolfClientServiceBuilder SetFallbackResponseSerializer(this IHostedWolfClientServiceBuilder builder, IResponseSerializer serializer)
 {
     if (serializer == null)
     {
         throw new ArgumentNullException(nameof(serializer));
     }
     return(builder.ConfigureResponseSerializerProvider(options => options.FallbackSerializer = serializer));
 }
Пример #8
0
 /// <summary>
 /// Initializes a new instance of the <see cref="ApiClient" /> class
 /// with default configuration and base path (https://apitest.cybersource.com).
 /// </summary>
 public ApiClient()
 {
     Configuration       = Configuration.Default;
     RestClient          = new RestClient(Constants.BaseTestApiPath);
     _responseSerializer = new ResponseSerializer();
 }