Initial Commit ...
This commit is contained in:
@@ -0,0 +1,120 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using xCommons.Extensions;
|
||||
using xIdentityModels.Descriptors;
|
||||
using xIdentityModels.Models;
|
||||
using xIdentityModels.Navigations;
|
||||
|
||||
namespace xIdentityModels.Extensions {
|
||||
public static class XModelExtensions {
|
||||
/// <summary>
|
||||
/// /// Convert XIdentityUserDescriptor instance to XUser
|
||||
/// </summary>
|
||||
/// <param name="source"></param>
|
||||
/// <returns></returns>
|
||||
public static XUser ToXUser (this XIdentityUserDescriptor source) {
|
||||
return new XUser {
|
||||
Id = source.Id,
|
||||
FirstName = source.FirstName,
|
||||
LastName = source.LastName,
|
||||
UserName = source.UserName,
|
||||
Email = source.Email,
|
||||
EmailConfirmed = source.EmailConfirmed,
|
||||
PhoneNumber = source.PhoneNumber,
|
||||
PhoneNumberConfirmed = source.PhoneNumberConfirmed,
|
||||
IsEnable = true,
|
||||
IsBanned = false,
|
||||
CreationDate = DateTime.UtcNow,
|
||||
DateOfBirth = DateTime.Parse (source.DateOfBirth)
|
||||
};
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Check a User is Same as Descriptor User
|
||||
/// </summary>
|
||||
/// <param name="source"></param>
|
||||
/// <param name="dest"></param>
|
||||
/// <returns></returns>
|
||||
public static bool IsSameAs (this XUser source, XIdentityUserDescriptor dest) {
|
||||
//
|
||||
if (source.IsNull () ||
|
||||
dest.IsNull ()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
//
|
||||
var isSame = source.IsSameContent (dest, propertyWhiteList : new [] {
|
||||
nameof (XIdentityUserDescriptor.FirstName),
|
||||
nameof (XIdentityUserDescriptor.LastName),
|
||||
nameof (XIdentityUserDescriptor.UserName),
|
||||
nameof (XIdentityUserDescriptor.Email),
|
||||
nameof (XIdentityUserDescriptor.EmailConfirmed),
|
||||
nameof (XIdentityUserDescriptor.PhoneNumber),
|
||||
nameof (XIdentityUserDescriptor.PhoneNumberConfirmed),
|
||||
nameof (XIdentityUserDescriptor.IsEnable),
|
||||
nameof (XIdentityUserDescriptor.IsBanned),
|
||||
nameof (XIdentityUserDescriptor.DateOfBirth)
|
||||
},
|
||||
propertyValueCheckers : new [] {
|
||||
new KeyValuePair<string, Func<XUser, XIdentityUserDescriptor, bool>> (
|
||||
nameof (XIdentityUserDescriptor.DateOfBirth),
|
||||
(user, descriptorUser) => {
|
||||
//
|
||||
var descriptorUserDateOfBirth = DateTime.Parse (descriptorUser.DateOfBirth);
|
||||
return DateTime.Equals (user.DateOfBirth, descriptorUserDateOfBirth);
|
||||
})
|
||||
}
|
||||
);
|
||||
|
||||
//
|
||||
return isSame;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Check to XDevice instance to be same or not
|
||||
/// </summary>
|
||||
/// <param name="source"></param>
|
||||
/// <param name="dest"></param>
|
||||
/// <returns></returns>
|
||||
public static bool IsSameAs (this XDevice source, XDevice dest) {
|
||||
//
|
||||
if (source.IsNull () ||
|
||||
dest.IsNull ()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
//
|
||||
var isSame = source.Os.ToNormalString () == dest.Os.ToNormalString () &&
|
||||
source.OsVersion.ToNormalString () == dest.OsVersion.ToNormalString () &&
|
||||
source.Browser.ToNormalString () == dest.Browser.ToNormalString () &&
|
||||
source.UserAgent.ToNormalString () == dest.UserAgent.ToNormalString () &&
|
||||
source.DeviceType == dest.DeviceType;
|
||||
|
||||
//
|
||||
return isSame;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// convert UserClaimsInfo to TokenResponse ...
|
||||
/// </summary>
|
||||
/// <param name="source"></param>
|
||||
/// <returns></returns>
|
||||
public static XTokenResponse ToXTokenResponse (this XUserClaimsInfoDto source) {
|
||||
//
|
||||
if (source.IsNull () ||
|
||||
(source.AccessToken.IsNullOrEmpty () && source.RefreshToken.IsNullOrEmpty ())) {
|
||||
return null;
|
||||
}
|
||||
|
||||
//
|
||||
var result = new XTokenResponse {
|
||||
AccessToken = source.AccessToken,
|
||||
RefreshToken = source.RefreshToken,
|
||||
ExpiresAt = source.ExpiresAt
|
||||
};
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user