Files
myoffice/MyOffice.Core/Identity/IExternalProviderValidator.cs
T
2023-04-29 09:17:17 +03:00

47 lines
1.1 KiB
C#

namespace MyOffice.Core.Identity;
using System;
using System.Diagnostics.Contracts;
public interface IExternalProviderValidator
{
string Provider { get; }
public bool IsConfigured { get; }
Task<ExternalProviderValidatorResult> ValidateAsync(string token);
}
public class ExternalProviderValidatorResult
{
public static ExternalProviderValidatorResult Failed()
{
return new ExternalProviderValidatorResult();
}
public static ExternalProviderValidatorResult Success(string email, bool emailVerified, string externalId,
string? fullName)
{
return new ExternalProviderValidatorResult(email, emailVerified, externalId, fullName);
}
public ExternalProviderValidatorResult()
{
IsSuccessed = false;
}
public ExternalProviderValidatorResult(string email, bool emailVerified, string externalId, string? fullName) :
this()
{
Email = email;
EmailVerified = emailVerified;
IsSuccessed = true;
ExternalId = externalId;
FullName = fullName;
}
public bool IsSuccessed { get; }
public string? Email { get; }
public bool EmailVerified { get; }
public string? ExternalId { get; }
public string? FullName { get; }
}