Example #1
0
        /// <summary>
        /// </summary>
        /// <param name="obj"></param>
        /// <param name="settings"></param>
        /// <returns></returns>
        public static string ToJson(object obj, JsonSerializerSettings settings)
        {
            var options      = new AutoWrapperOptions();
            var jsonSettings = JSONHelper.GetJSONSettings(options.IgnoreNullValue, options.ReferenceLoopHandling, options.UseCamelCaseNamingStrategy);

            return(JsonConvert.SerializeObject(obj, settings ?? jsonSettings));
        }
        public async Task AutoWrapperModelValidations_Test()
        {
            var builder = new WebHostBuilder()
                          .ConfigureServices(services =>
            {
                services.Configure <ApiBehaviorOptions>(options =>
                {
                    options.SuppressModelStateInvalidFilter = true;
                });
                services.AddMvcCore();
            })
                          .Configure(app =>
            {
                app.UseApiResponseAndExceptionWrapper <MapResponseObject>();
                app.Run(context => context.Response.WriteAsync(
                            new ApiResponse("customMessage.", "Test", 200).ToJson()));
            });
            var server = new TestServer(builder);
            var req    = new HttpRequestMessage(HttpMethod.Get, "");
            var rep    = await server.CreateClient().SendAsync(req);

            var content = await rep.Content.ReadAsStringAsync();

            Convert.ToInt32(rep.StatusCode).ShouldBe(200);
            var options      = new AutoWrapperOptions();
            var jsonSettings = JSONHelper.GetJSONSettings <MapResponseObject>(options.IgnoreNullValue, options.ReferenceLoopHandling, options.UseCamelCaseNamingStrategy);
            var json         = JsonHelper.ToJson(new ApiResponse("customMessage.", "Test", 0, null), jsonSettings.Settings);

            content.ShouldBe(json);
        }
Example #3
0
 public WrapperBase(RequestDelegate next, AutoWrapperOptions options, ILogger <AutoWrapperMiddleware> logger, IActionResultExecutor <ObjectResult> executor)
 {
     _next     = next;
     _options  = options;
     _logger   = logger;
     _executor = executor;
 }
Example #4
0
 public WrapperBase(RequestDelegate next, DiagnosticContext diagnosticContext,
                    AutoWrapperOptions options,
                    IActionResultExecutor <ObjectResult> executor)
 {
     _next = next;
     _diagnosticContext = diagnosticContext;
     _options           = options;
     _messageTemplate   = new MessageTemplateParser().Parse(DefaultRequestCompletionMessageTemplate);
     _logger            = options.Logger ?? Log.ForContext <WrapperBase>();
     _executor          = executor;
 }
        public async Task AutoWrapperCustomErrorObject_Test()
        {
            var builder = new WebHostBuilder()
                          .ConfigureServices(services =>
            {
                services.AddMvcCore();
            })
                          .Configure(app =>
            {
                app.UseApiResponseAndExceptionWrapper <MapResponseCustomErrorObject>();
                app.Run(context =>
                        throw new ApiException(
                            new Error("An error blah.", "InvalidRange",
                                      new InnerError("12345678", "2020-03-20")
                                      )));
            });
            var server = new TestServer(builder);
            var req    = new HttpRequestMessage(HttpMethod.Get, "");
            var rep    = await server.CreateClient().SendAsync(req);

            var content = await rep.Content.ReadAsStringAsync();

            Convert.ToInt32(rep.StatusCode).ShouldBe(400);
            Exception ex;

            try
            {
                throw new ApiException(
                          new Error("An error blah.", "InvalidRange",
                                    new InnerError("12345678", "2020-03-20")
                                    ));
            }
            catch (Exception e)
            {
                ex = e;
            }
            var ex1          = ex as ApiException;
            var options      = new AutoWrapperOptions();
            var jsonSettings = JSONHelper.GetJSONSettings <MapResponseCustomErrorObject>(options.IgnoreNullValue, options.ReferenceLoopHandling, options.UseCamelCaseNamingStrategy);
            var json         = JsonHelper.ToJson(new ApiResponse(0, ex1.CustomError), jsonSettings.Settings);

            json.ToJson().ShouldBe(content.ToJson());
        }
Example #6
0
 public WrapperBase(RequestDelegate next, AutoWrapperOptions options, ILogger <AutoWrapperMiddleware> logger)
 {
     _next    = next;
     _options = options;
     _logger  = logger;
 }