Add Open Actions Dtos here ...

This commit is contained in:
2025-07-17 04:39:41 +03:30
parent 8f5ff3135a
commit 88b47a7d86
+100
View File
@@ -0,0 +1,100 @@
using System;
using xCommons.Extensions;
using xModels.Base;
using xModels.Dtos;
namespace xIdentityModels.Dtos
{
public class XOpenActionDto
{
/// <summary>
/// a List of Available Open Actions ...
/// </summary>
public struct XOpenActions
{
public const string HandShake = "HandShake";
public const string GetUserInfo = "GetUserInfo";
}
/// <summary>
/// Open Actions Request Model ...
/// </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>
/// Validate Model ...
/// </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>
/// aa Dto which used between Api's ...
/// </summary>
public class XOpenActionInnerDto : XBaseDto
{
public string Token { get; set; }
public string Payload { get; set; }
}
}
}