Last ...
This commit is contained in:
@@ -1,4 +1,5 @@
|
|||||||
using System;
|
using System;
|
||||||
|
using System.IO;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Net.Http;
|
using System.Net.Http;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
@@ -107,6 +108,7 @@ namespace xIdentityService.Interfaces
|
|||||||
/// Access a Get Request Stream as AsyncEnumerable ...
|
/// Access a Get Request Stream as AsyncEnumerable ...
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="endpoint"></param>
|
/// <param name="endpoint"></param>
|
||||||
|
/// <param name="bufferLength"></param>
|
||||||
/// <param name="addXPoweredValue"></param>
|
/// <param name="addXPoweredValue"></param>
|
||||||
/// <param name="tokens"></param>
|
/// <param name="tokens"></param>
|
||||||
/// <param name="@params"></param>
|
/// <param name="@params"></param>
|
||||||
@@ -115,8 +117,9 @@ namespace xIdentityService.Interfaces
|
|||||||
/// <param name="cancellationToken"></param>
|
/// <param name="cancellationToken"></param>
|
||||||
/// <typeparam name="T"></typeparam>
|
/// <typeparam name="T"></typeparam>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
IAsyncEnumerable<T> StreamData<T>(
|
Task<Stream> StreamData(
|
||||||
Enum endpoint,
|
Enum endpoint,
|
||||||
|
int bufferLength = 8194,
|
||||||
bool addXPoweredValue = true,
|
bool addXPoweredValue = true,
|
||||||
XTokenResponse tokens = null,
|
XTokenResponse tokens = null,
|
||||||
IDictionary<string, string> @params = null,
|
IDictionary<string, string> @params = null,
|
||||||
@@ -168,11 +171,13 @@ namespace xIdentityService.Interfaces
|
|||||||
/// and Query Strings Attach ...
|
/// and Query Strings Attach ...
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="endpoint"></param>
|
/// <param name="endpoint"></param>
|
||||||
|
/// <param name="attachBaseUrl"></param>
|
||||||
/// <param name="@params"></param>
|
/// <param name="@params"></param>
|
||||||
/// <param name="queryStrings"></param>
|
/// <param name="queryStrings"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
string PrepareUrl(
|
string PrepareUrl(
|
||||||
Enum endpoint,
|
Enum endpoint,
|
||||||
|
bool attachBaseUrl = false,
|
||||||
IDictionary<string, string> @params = null,
|
IDictionary<string, string> @params = null,
|
||||||
IDictionary<string, string> queryStrings = null
|
IDictionary<string, string> queryStrings = null
|
||||||
);
|
);
|
||||||
@@ -182,11 +187,13 @@ namespace xIdentityService.Interfaces
|
|||||||
/// and Query Strings Attach ...
|
/// and Query Strings Attach ...
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="url"></param>
|
/// <param name="url"></param>
|
||||||
|
/// <param name="attachBaseUrl"></param>
|
||||||
/// <param name="@params"></param>
|
/// <param name="@params"></param>
|
||||||
/// <param name="queryStrings"></param>
|
/// <param name="queryStrings"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
string PrepareUrl(
|
string PrepareUrl(
|
||||||
string url,
|
string url,
|
||||||
|
bool attachBaseUrl = false,
|
||||||
IDictionary<string, string> @params = null,
|
IDictionary<string, string> @params = null,
|
||||||
IDictionary<string, string> queryStrings = null
|
IDictionary<string, string> queryStrings = null
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
using System;
|
using System;
|
||||||
|
using System.IO;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Net.Http;
|
using System.Net.Http;
|
||||||
@@ -19,6 +20,8 @@ using xIdentityService.Constants;
|
|||||||
using xIdentityService.Interfaces;
|
using xIdentityService.Interfaces;
|
||||||
using xIdentityService.Models;
|
using xIdentityService.Models;
|
||||||
using xIdentityService.Extensions;
|
using xIdentityService.Extensions;
|
||||||
|
using System.Diagnostics.Tracing;
|
||||||
|
using MySqlX.XDevAPI.Common;
|
||||||
|
|
||||||
namespace xIdentityService.Providers
|
namespace xIdentityService.Providers
|
||||||
{
|
{
|
||||||
@@ -132,7 +135,7 @@ namespace xIdentityService.Providers
|
|||||||
//
|
//
|
||||||
httpClient.DefaultRequestHeaders
|
httpClient.DefaultRequestHeaders
|
||||||
.Add(
|
.Add(
|
||||||
XAuthorization.AccessToken,
|
XAuthorization.Header,
|
||||||
$"{XAuthentication.BEARER} {tokens.AccessToken}");
|
$"{XAuthentication.BEARER} {tokens.AccessToken}");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -257,9 +260,9 @@ namespace xIdentityService.Providers
|
|||||||
{
|
{
|
||||||
//
|
//
|
||||||
var url = PrepareUrl(
|
var url = PrepareUrl(
|
||||||
endpoint,
|
@params: @params,
|
||||||
@params,
|
endpoint: endpoint,
|
||||||
queryStrings
|
queryStrings: queryStrings
|
||||||
);
|
);
|
||||||
|
|
||||||
//
|
//
|
||||||
@@ -456,6 +459,7 @@ namespace xIdentityService.Providers
|
|||||||
/// Access a Get Request Stream as AsyncEnumerable ...
|
/// Access a Get Request Stream as AsyncEnumerable ...
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="endpoint"></param>
|
/// <param name="endpoint"></param>
|
||||||
|
/// <param name="bufferLength"></param>
|
||||||
/// <param name="addXPoweredValue"></param>
|
/// <param name="addXPoweredValue"></param>
|
||||||
/// <param name="tokens"></param>
|
/// <param name="tokens"></param>
|
||||||
/// <param name="@params"></param>
|
/// <param name="@params"></param>
|
||||||
@@ -464,8 +468,9 @@ namespace xIdentityService.Providers
|
|||||||
/// <param name="cancellationToken"></param>
|
/// <param name="cancellationToken"></param>
|
||||||
/// <typeparam name="T"></typeparam>
|
/// <typeparam name="T"></typeparam>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public async IAsyncEnumerable<T> StreamData<T>(
|
public async Task<Stream> StreamData(
|
||||||
Enum endpoint,
|
Enum endpoint,
|
||||||
|
int bufferLength = 8194,
|
||||||
bool addXPoweredValue = true,
|
bool addXPoweredValue = true,
|
||||||
XTokenResponse tokens = null,
|
XTokenResponse tokens = null,
|
||||||
IDictionary<string, string> @params = null,
|
IDictionary<string, string> @params = null,
|
||||||
@@ -477,9 +482,10 @@ namespace xIdentityService.Providers
|
|||||||
{
|
{
|
||||||
//
|
//
|
||||||
var url = PrepareUrl(
|
var url = PrepareUrl(
|
||||||
endpoint,
|
@params: @params,
|
||||||
@params,
|
endpoint: endpoint,
|
||||||
queryStrings
|
attachBaseUrl: true,
|
||||||
|
queryStrings: queryStrings
|
||||||
);
|
);
|
||||||
var client = GetHttpClient(tokens);
|
var client = GetHttpClient(tokens);
|
||||||
if (addXPoweredValue)
|
if (addXPoweredValue)
|
||||||
@@ -488,7 +494,8 @@ namespace xIdentityService.Providers
|
|||||||
client.DefaultRequestHeaders
|
client.DefaultRequestHeaders
|
||||||
.Add(
|
.Add(
|
||||||
XAuthorization.XPoweredBy,
|
XAuthorization.XPoweredBy,
|
||||||
XPoweredValue);
|
XPoweredValue
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
@@ -499,16 +506,92 @@ namespace xIdentityService.Providers
|
|||||||
new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("text/event-stream"));
|
new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("text/event-stream"));
|
||||||
|
|
||||||
//
|
//
|
||||||
using (var response = await client.GetAsync(url, HttpCompletionOption.ResponseHeadersRead, cancellationToken))
|
var response = await client.GetAsync(url, HttpCompletionOption.ResponseHeadersRead, cancellationToken);
|
||||||
{
|
response.EnsureSuccessStatusCode();
|
||||||
//
|
|
||||||
response.EnsureSuccessStatusCode();
|
//
|
||||||
var stream = await response.Content.ReadAsStreamAsync();
|
var stream = await response.Content.ReadAsStreamAsync();
|
||||||
await foreach (var item in stream.ToAsyncEnumerable<T>(cancellationToken: cancellationToken))
|
|
||||||
{
|
//
|
||||||
yield return item;
|
return stream;
|
||||||
}
|
|
||||||
}
|
// using (var response = await client.GetAsync(url, HttpCompletionOption.ResponseHeadersRead, cancellationToken))
|
||||||
|
// {
|
||||||
|
// //
|
||||||
|
// int readedBuffers = 0;
|
||||||
|
// response.EnsureSuccessStatusCode();
|
||||||
|
// var buffer = new byte[bufferLength];
|
||||||
|
// var stream = await response.Content.ReadAsStreamAsync();
|
||||||
|
|
||||||
|
// //
|
||||||
|
// while ((readedBuffers = await stream.ReadAsync(buffer, 0, buffer.Length)) > 0)
|
||||||
|
// {
|
||||||
|
// //
|
||||||
|
// var content = buffer.FromBytes();
|
||||||
|
// Console.WriteLine(content);
|
||||||
|
// }
|
||||||
|
|
||||||
|
// // await foreach (var message in stream) {
|
||||||
|
// // Console.WriteLine(message);
|
||||||
|
// // }
|
||||||
|
|
||||||
|
// // await foreach (var item in stream.ToAsyncEnumerable<byte[]>(cancellationToken: cancellationToken))
|
||||||
|
// // {
|
||||||
|
// // //
|
||||||
|
// // Console.WriteLine(item);
|
||||||
|
|
||||||
|
// // // T value = item.IsNull()
|
||||||
|
// // // ? default(T)
|
||||||
|
// // // : item.FromBytes().FromJSON<T>();
|
||||||
|
|
||||||
|
// // // //
|
||||||
|
// // // yield return value;
|
||||||
|
// // }
|
||||||
|
// }
|
||||||
|
|
||||||
|
///
|
||||||
|
///
|
||||||
|
///
|
||||||
|
///
|
||||||
|
|
||||||
|
//
|
||||||
|
// var eventSource = new EventSource(url);
|
||||||
|
// // eventSource.
|
||||||
|
|
||||||
|
// // var client = GetHttpClient(tokens);
|
||||||
|
// // if (addXPoweredValue)
|
||||||
|
// // {
|
||||||
|
// // //
|
||||||
|
// // client.DefaultRequestHeaders
|
||||||
|
// // .Add(
|
||||||
|
// // XAuthorization.XPoweredBy,
|
||||||
|
// // XPoweredValue);
|
||||||
|
// // }
|
||||||
|
|
||||||
|
// // //
|
||||||
|
// // // For SSE, you might want to set the Accept header, though not strictly necessary for just streaming
|
||||||
|
// // client.DefaultRequestHeaders.Accept.Clear();
|
||||||
|
// // client.DefaultRequestHeaders.Accept
|
||||||
|
// // .Add(
|
||||||
|
// // new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("text/event-stream"));
|
||||||
|
|
||||||
|
// // //
|
||||||
|
// // using (var response = await client.GetAsync(url, HttpCompletionOption.ResponseHeadersRead, cancellationToken))
|
||||||
|
// // {
|
||||||
|
// // //
|
||||||
|
// // response.EnsureSuccessStatusCode();
|
||||||
|
// // var stream = await response.Content.ReadAsStreamAsync();
|
||||||
|
// // await foreach (var item in stream.ToAsyncEnumerable<byte[]>(cancellationToken: cancellationToken))
|
||||||
|
// // {
|
||||||
|
// // //
|
||||||
|
// // T value = item.IsNull()
|
||||||
|
// // ? default(T)
|
||||||
|
// // : item.FromBytes().FromJSON<T>();
|
||||||
|
|
||||||
|
// // //
|
||||||
|
// // yield return value;
|
||||||
|
// // }
|
||||||
|
// // }
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -748,11 +831,13 @@ namespace xIdentityService.Providers
|
|||||||
/// and Query Strings Attach ...
|
/// and Query Strings Attach ...
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="endpoint"></param>
|
/// <param name="endpoint"></param>
|
||||||
|
/// <param name="attachBaseUrl"></param>
|
||||||
/// <param name="@params"></param>
|
/// <param name="@params"></param>
|
||||||
/// <param name="queryStrings"></param>
|
/// <param name="queryStrings"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public string PrepareUrl(
|
public string PrepareUrl(
|
||||||
Enum endpoint,
|
Enum endpoint,
|
||||||
|
bool attachBaseUrl = false,
|
||||||
IDictionary<string, string> @params = null,
|
IDictionary<string, string> @params = null,
|
||||||
IDictionary<string, string> queryStrings = null
|
IDictionary<string, string> queryStrings = null
|
||||||
)
|
)
|
||||||
@@ -764,9 +849,10 @@ namespace xIdentityService.Providers
|
|||||||
//
|
//
|
||||||
// Filling Parmas and Query Strings of Url ...
|
// Filling Parmas and Query Strings of Url ...
|
||||||
url = PrepareUrl(
|
url = PrepareUrl(
|
||||||
url,
|
url: url,
|
||||||
@params,
|
@params: @params,
|
||||||
queryStrings
|
queryStrings: queryStrings,
|
||||||
|
attachBaseUrl: attachBaseUrl
|
||||||
);
|
);
|
||||||
|
|
||||||
//
|
//
|
||||||
@@ -778,15 +864,31 @@ namespace xIdentityService.Providers
|
|||||||
/// and Query Strings Attach ...
|
/// and Query Strings Attach ...
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="url"></param>
|
/// <param name="url"></param>
|
||||||
|
/// <param name="attachBaseUrl"></param>
|
||||||
/// <param name="@params"></param>
|
/// <param name="@params"></param>
|
||||||
/// <param name="queryStrings"></param>
|
/// <param name="queryStrings"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public string PrepareUrl(
|
public string PrepareUrl(
|
||||||
string url,
|
string url,
|
||||||
|
bool attachBaseUrl = false,
|
||||||
IDictionary<string, string> @params = null,
|
IDictionary<string, string> @params = null,
|
||||||
IDictionary<string, string> queryStrings = null
|
IDictionary<string, string> queryStrings = null
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
|
//
|
||||||
|
if (attachBaseUrl)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
var baseUrl = BaseUrl;
|
||||||
|
if (!baseUrl.EndsWith("/"))
|
||||||
|
{
|
||||||
|
baseUrl = $"{baseUrl}/";
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
url = $"{baseUrl}{url}";
|
||||||
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Add Route Payloads ...
|
// Add Route Payloads ...
|
||||||
if (!@params.IsNull() && @params.Count > 0)
|
if (!@params.IsNull() && @params.Count > 0)
|
||||||
|
|||||||
Reference in New Issue
Block a user