This commit is contained in:
2025-07-17 06:41:44 +03:30
parent 88b47a7d86
commit 24579022ea
+86 -78
View File
@@ -5,96 +5,104 @@ using xModels.Dtos;
namespace xIdentityModels.Dtos namespace xIdentityModels.Dtos
{ {
public class XOpenActionDto /// <summary>
/// a List of Available Open Actions ...
/// </summary>
public struct XOpenActions
{ {
/// <summary> public const string HandShake = "HandShake";
/// a List of Available Open Actions ... public const string GetUserInfo = "GetUserInfo";
/// </summary> }
public struct XOpenActions
{ /// <summary>
public const string HandShake = "HandShake"; /// Open Actions Request Model ...
public const string GetUserInfo = "GetUserInfo"; /// </summary>
} public class XOpenActionRequestDto : XBaseDto
{
//
public string Action { get; set; }
public string Payload { get; set; }
public string Checksum { get; set; }
public XDeviceDto Device { get; set; }
public DateTime Timestamp { get; set; }
/// <summary> /// <summary>
/// Open Actions Request Model ... /// Validate Model ...
/// </summary> /// </summary>
public class XOpenActionRequestDto : XBaseDto /// <returns></returns>
public bool Validate()
{ {
// //
public string Action { get; set; } var result =
public string Payload { get; set; } !Device.IsNull() &&
public string Checksum { get; set; } !Timestamp.IsNull() &&
public XDeviceDto Device { get; set; } !Timestamp.IsExPired() &&
public DateTime Timestamp { get; set; } !Action.IsNullOrEmpty() &&
(Action == XOpenActions.HandShake ||
Action == XOpenActions.GetUserInfo);
/// <summary> //
/// Validate Model ... return result;
/// </summary>
/// <returns></returns>
public bool Validate()
{
//
var result =
!Device.IsNull() &&
!Timestamp.IsNull() &&
!Timestamp.IsExPired() &&
!Action.IsNullOrEmpty() &&
(Action == XOpenActions.HandShake ||
Action == XOpenActions.GetUserInfo);
//
return result;
}
/// <summary>
/// Checksum Digest Model ...
/// </summary>
/// <returns></returns>
public string ToOpenActionToken()
{
//
var result = string.Empty;
if (!Validate())
{
return result;
}
//
var tmp = this;
tmp.Checksum = string.Empty;
//
result = $"{tmp.ToJSON()}"
.ToMd5String();
return result;
}
/// <summary>
/// Validate a Token is Correspond to Model or not ...
/// </summary>
/// <param name="token"></param>
/// <returns></returns>
public bool ValidateToken(string token)
{
//
var result =
Validate() &&
!token.IsNullOrEmpty() &&
token == ToOpenActionToken();
//
return result;
}
} }
/// <summary> /// <summary>
/// aa Dto which used between Api's ... /// Checksum Digest Model ...
/// </summary> /// </summary>
public class XOpenActionInnerDto : XBaseDto /// <returns></returns>
public string ToOpenActionToken()
{ {
public string Token { get; set; } //
public string Payload { get; set; } var result = string.Empty;
if (!Validate())
{
return result;
}
//
var tmp = this;
tmp.Checksum = string.Empty;
//
result = $"{tmp.ToJSON()}"
.ToMd5String();
return result;
}
/// <summary>
/// Validate a Token is Correspond to Model or not ...
/// </summary>
/// <param name="token"></param>
/// <returns></returns>
public bool ValidateToken(string token)
{
//
var result =
Validate() &&
!token.IsNullOrEmpty() &&
token == ToOpenActionToken();
//
return result;
} }
} }
/// <summary>
/// aa Dto which used between Api's ...
/// </summary>
public class XOpenActionInnerDto : XBaseDto
{
public string Token { get; set; }
public string Payload { get; set; }
}
/// <summary>
/// User Info Providing in Open Actions ...
/// </summary>
public class XOpenActionUserInfoDto : XBaseDto
{
public string Username { get; set; }
public string Firstname { get; set; }
public string Lastname { get; set; }
public string Avatar { get; set; }
}
} }