public async Task Invoke(HttpContext context, IDynamicsTokenService tokenService, IOptions <DynamicsSettings> dynamicsSetting)
        {
            await _next.Invoke(context);

            // TODO: Change on httpClientFactory

            var url =
                $"{dynamicsSetting.Value.Resource}{context.Request.Path.Value.Substring(1)}/{context.Request.QueryString.Value}";

            var token = await tokenService.CreateCreateAuthorizationHeader();

            HttpRequestMessage httpRequestMessage = new HttpRequestMessage(new HttpMethod(context.Request.Method), url);

            httpRequestMessage.Headers.TryAddWithoutValidation("Authorization", token);
            httpRequestMessage.Headers.TryAddWithoutValidation("Prefer",
                                                               "odata.include-annotations=OData.Community.Display.V1.FormattedValue");


            // TODO: Client factory
            HttpClient httpClient = new HttpClient();

            CopyFromOriginalRequestContentAndHeaders(context, httpRequestMessage);


            using (HttpResponseMessage responseMessage = await httpClient.SendAsync(httpRequestMessage))
            {
                CopyFromTargetResponseHeaders(context, responseMessage);
                context.Response.StatusCode = (int)responseMessage.StatusCode;
                if ((int)responseMessage.StatusCode != StatusCodes.Status204NoContent)
                {
                    await responseMessage.Content.CopyToAsync(context.Response.Body);
                }
            }
        }
Пример #2
0
 public AccountController(IDynamicsTokenService dynamicsTokenService, IAccountService accountService, IOptions <DynamicsOptions> instance, IHttpClientFactory httpClientFactory)
     : base(dynamicsTokenService, httpClientFactory)
 {
     _accountService = accountService;
     _instance       = instance;
 }
Пример #3
0
 public OccurrenceController(IDynamicsTokenService dynamicsTokenService, IOccurrenceService occurrenceService, IOptions <DynamicsOptions> instance, IHttpClientFactory httpClientFactory)
     : base(dynamicsTokenService, httpClientFactory)
 {
     _occurrenceService = occurrenceService;
     _instance          = instance;
 }
Пример #4
0
 public ContactController(IDynamicsTokenService dynamicsTokenService, IContactService contactService, IOptions <DynamicsOptions> instance, IHttpClientFactory httpClientFactory)
     : base(dynamicsTokenService, httpClientFactory)
 {
     _contactService = contactService;
     _instance       = instance;
 }
 public EntitlementContactRoleController(IContactService contactService, IEntitlementContactRoleService entitlementContactRoleService, IDynamicsTokenService dynamicsTokenService, IOptions <DynamicsOptions> instance, IHttpClientFactory httpClientFactory)
     : base(dynamicsTokenService, httpClientFactory)
 {
     _entitlementContactRoleService = entitlementContactRoleService;
     _instance       = instance;
     _contactService = contactService;
 }