- `DocumentsRouteService`-Klasse hinzugefügt, um dokumentbezogene Routen zu verwalten, basierend auf `BaseRouteService`. - `DocumentsRouteService` in `WindreamClientService` für Dokumentoperationen integriert. - `DocumentsRouteService` als Singleton im Service-Container registriert mit `AddSingleton`.
52 lines
2.0 KiB
C#
52 lines
2.0 KiB
C#
using DigitalData.Core.Legacy.Client;
|
|
using Microsoft.Extensions.Options;
|
|
using System.Net;
|
|
using System.Net.Http;
|
|
using System.Net.Http.Headers;
|
|
using System.Threading.Tasks;
|
|
using WindreamHub.Legacy.Client.Models.Authentication;
|
|
using WindreamHub.Legacy.Client.Models;
|
|
using WindreamHub.Legacy.Client.Route;
|
|
using WindreamHub.Legacy.Client.Routes;
|
|
|
|
namespace WindreamHub.Legacy.Client
|
|
{
|
|
public class WindreamClientService : HttpClientService<WindreamClientOptions>
|
|
{
|
|
public WindreamClientService(SubscriptionsRouteService subscriptions, SystemDetailsRouteService systemDetails, AuthenticationRouteService authentication,
|
|
HttpClient client, CookieContainer cookieContainer, IOptions<WindreamClientOptions> clientOptions) :
|
|
base(client, cookieContainer, clientOptions)
|
|
{
|
|
Subscriptions = subscriptions;
|
|
SystemDetails = systemDetails;
|
|
Authentication = authentication;
|
|
}
|
|
|
|
public SubscriptionsRouteService Subscriptions { get; }
|
|
|
|
public SystemDetailsRouteService SystemDetails { get; }
|
|
|
|
public AuthenticationRouteService Authentication { get; }
|
|
|
|
public DocumentsRouteService Documents { get; }
|
|
|
|
public async Task<bool> AuthenticateAsync(ICredential credential)
|
|
{
|
|
_client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", credential.AuthorizationHeader);
|
|
var res = await Authentication.IsValidUser();
|
|
return res.Ok && res.Data.IsValidUser;
|
|
}
|
|
|
|
public async Task<bool> AuthenticateAsync(string domain, string name, string password)
|
|
{
|
|
var uCredential = new UserCredential(domain, name, password);
|
|
return await AuthenticateAsync(uCredential);
|
|
}
|
|
|
|
public async Task<bool> AuthenticateAsync(string authorizationHeader)
|
|
{
|
|
var uCredential = new Base64Credential(authorizationHeader);
|
|
return await AuthenticateAsync(uCredential);
|
|
}
|
|
}
|
|
} |