Initial ...
This commit is contained in:
@@ -0,0 +1,341 @@
|
||||
using System;
|
||||
using xCommons.Extensions;
|
||||
using xExceptions.Constants;
|
||||
using xIdentityModels.Navigations;
|
||||
using xMessageService.Models;
|
||||
|
||||
namespace xIds.Providers
|
||||
{
|
||||
public partial class XIdentityManager
|
||||
{
|
||||
//
|
||||
#region Message Provider ...
|
||||
/// <summary>
|
||||
/// Generate and Prepare an XMessage Instance for
|
||||
/// User Invite Action
|
||||
/// </summary>
|
||||
/// <param name="lang">specify destination language</param>
|
||||
/// <param name="emailAddress">reciever email address</param>
|
||||
/// <param name="inviteToken">invitation token</param>
|
||||
/// <param name="returnUrl">return url for invitation user to redirect</param>
|
||||
/// <returns>an instance of <see>XMessage</see></returns>
|
||||
private XMessage GetUserInviteMessage(
|
||||
string lang,
|
||||
string emailAddress,
|
||||
string inviteToken,
|
||||
string returnUrl
|
||||
)
|
||||
{
|
||||
//
|
||||
ValidationProvider
|
||||
.NotEmpty(lang, emailAddress, inviteToken, returnUrl);
|
||||
ValidationProvider
|
||||
.EmailAddress(emailAddress);
|
||||
ValidationProvider
|
||||
.Url(returnUrl);
|
||||
|
||||
//
|
||||
HandleMessageProviderPreperation(lang);
|
||||
|
||||
//
|
||||
var msgStr = IdentityMessageProvider.InviteMsg +
|
||||
Environment.NewLine +
|
||||
returnUrl +
|
||||
"?t=" +
|
||||
inviteToken;
|
||||
|
||||
//
|
||||
var message = new XMessage
|
||||
{
|
||||
Message = msgStr,
|
||||
};
|
||||
message.Recievers.Add(emailAddress);
|
||||
|
||||
//
|
||||
return message;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Generate and Prepare an XMessage Instance for
|
||||
/// New Device LoggedIn Action
|
||||
/// </summary>
|
||||
/// <param name="lang">specify destination language</param>
|
||||
/// <param name="emailAddress">reciever email address</param>
|
||||
/// <param name="device">an instance of <see>XDevice</see> which represent user new Device</param>
|
||||
/// <returns>an instance of <see>XMessage</see></returns>
|
||||
private XMessage GetUserNewDeviceLoggedInMessage(
|
||||
string lang,
|
||||
string emailAddress,
|
||||
XDevice device
|
||||
)
|
||||
{
|
||||
//
|
||||
ValidationProvider
|
||||
.NotEmpty(lang, emailAddress);
|
||||
ValidationProvider
|
||||
.EmailAddress(emailAddress);
|
||||
ValidationProvider
|
||||
.NotNull(device);
|
||||
|
||||
//
|
||||
HandleMessageProviderPreperation(lang);
|
||||
|
||||
//
|
||||
// Generate Specific Message ...
|
||||
var msgStr = IdentityMessageProvider.NewDeviceLoggedInMsg +
|
||||
Environment.NewLine +
|
||||
nameof(XDevice.Os) + ": " + device.Os +
|
||||
Environment.NewLine +
|
||||
nameof(XDevice.OsVersion) + ": " + device.OsVersion +
|
||||
Environment.NewLine +
|
||||
nameof(XDevice.Browser) + ": " + device.Browser +
|
||||
Environment.NewLine +
|
||||
nameof(XDevice.UserAgent) + ": " + device.UserAgent;
|
||||
|
||||
//
|
||||
// Create XMessage Instance ...
|
||||
var message = new XMessage
|
||||
{
|
||||
Message = msgStr,
|
||||
};
|
||||
message.Recievers.Add(emailAddress);
|
||||
|
||||
//
|
||||
return message;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Generate and Prepare an XMessage Instance for
|
||||
/// Verification Code Action
|
||||
/// </summary>
|
||||
/// <param name="lang">specify destination language</param>
|
||||
/// <param name="mobileNumberOrEmail">an string which points to a user email address or mobile number</param>
|
||||
/// <param name="verificationCode">user verification code</param>
|
||||
/// <returns>an instance of <see>XMessage</see></returns>
|
||||
private XMessage GetVerificationCodeMessage(
|
||||
string lang,
|
||||
string mobileNumberOrEmail,
|
||||
string verificationCode
|
||||
)
|
||||
{
|
||||
//
|
||||
ValidationProvider
|
||||
.NotEmpty(lang, mobileNumberOrEmail, verificationCode);
|
||||
|
||||
//
|
||||
HandleMessageProviderPreperation(lang);
|
||||
|
||||
//
|
||||
mobileNumberOrEmail = mobileNumberOrEmail.ToNormalString();
|
||||
|
||||
//
|
||||
// Validate Mobile or Email ...
|
||||
var isValidEmail = mobileNumberOrEmail.IsValidEmail();
|
||||
var isValidMobileNumber = mobileNumberOrEmail.IsValidMobileNumber();
|
||||
if (!isValidEmail &&
|
||||
!isValidMobileNumber)
|
||||
{
|
||||
XException.InvalidData.Throw();
|
||||
}
|
||||
|
||||
//
|
||||
// Prepare Message String ...
|
||||
var msgStr = IdentityMessageProvider.VerificationCodeMsg +
|
||||
Environment.NewLine +
|
||||
verificationCode;
|
||||
|
||||
//
|
||||
// Create XMessage Instance ...
|
||||
var message = new XMessage
|
||||
{
|
||||
Message = msgStr,
|
||||
};
|
||||
message.Recievers.Add(mobileNumberOrEmail);
|
||||
|
||||
//
|
||||
return message;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Generate and Prepare an XMessage Instance for
|
||||
/// Registration Approve Action
|
||||
/// </summary>
|
||||
/// <param name="lang">specify destination language</param>
|
||||
/// <param name="emailAddress">reciever email address</param>
|
||||
/// <param name="actionToken">a token which approved user action</param>
|
||||
/// <param name="returnUrl">return url for redirect</param>
|
||||
/// <returns>an instance of <see>XMessage</see></returns>
|
||||
private XMessage GetRegistrationConfirmMessage(
|
||||
string lang,
|
||||
string emailAddress,
|
||||
string actionToken,
|
||||
string returnUrl
|
||||
)
|
||||
{
|
||||
//
|
||||
ValidationProvider
|
||||
.NotEmpty(lang, emailAddress, actionToken, returnUrl);
|
||||
ValidationProvider
|
||||
.EmailAddress(emailAddress);
|
||||
ValidationProvider
|
||||
.Url(returnUrl);
|
||||
|
||||
//
|
||||
HandleMessageProviderPreperation(lang);
|
||||
|
||||
//
|
||||
// Prepare Message Str ...
|
||||
var msgStr = IdentityMessageProvider.RegistrationApproveMsg +
|
||||
Environment.NewLine +
|
||||
returnUrl +
|
||||
"?t=" +
|
||||
actionToken;
|
||||
|
||||
//
|
||||
var message = new XMessage
|
||||
{
|
||||
Message = msgStr,
|
||||
};
|
||||
message.Recievers.Add(emailAddress);
|
||||
|
||||
//
|
||||
return message;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Generate and Prepare an XMessage Instance for
|
||||
/// Registration Finished Action
|
||||
/// </summary>
|
||||
/// <param name="lang">specify destination language</param>
|
||||
/// <param name="emailAddress">reciever email address</param>
|
||||
/// <param name="returnUrl">return url for redirect</param>
|
||||
/// <returns>an instance of <see>XMessage</see></returns>
|
||||
private XMessage GetRegistrationFinishedMessage(
|
||||
string lang,
|
||||
string emailAddress,
|
||||
string returnUrl
|
||||
)
|
||||
{
|
||||
//
|
||||
ValidationProvider
|
||||
.NotEmpty(lang, emailAddress, returnUrl);
|
||||
ValidationProvider
|
||||
.EmailAddress(emailAddress);
|
||||
ValidationProvider
|
||||
.Url(returnUrl);
|
||||
|
||||
//
|
||||
HandleMessageProviderPreperation(lang);
|
||||
|
||||
//
|
||||
var msgStr = IdentityMessageProvider.RegisteredMsg +
|
||||
Environment.NewLine +
|
||||
returnUrl;
|
||||
|
||||
//
|
||||
var message = new XMessage
|
||||
{
|
||||
Message = msgStr,
|
||||
};
|
||||
message.Recievers.Add(emailAddress);
|
||||
|
||||
//
|
||||
return message;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Generate and Prepare an XMessage Instance for
|
||||
/// Password Changed Action
|
||||
/// </summary>
|
||||
/// <param name="lang">specify destination language</param>
|
||||
/// <param name="emailAddress">reciever email address</param>
|
||||
/// <param name="returnUrl">return url for redirect</param>
|
||||
/// <param name="throwException">specify throw exceptions on failure or not, default is true</param>
|
||||
/// <returns>an instance of <see>XMessage</see></returns>
|
||||
private XMessage GetPasswordChangedMessage(
|
||||
string lang,
|
||||
string emailAddress,
|
||||
string returnUrl,
|
||||
bool throwException = true
|
||||
)
|
||||
{
|
||||
//
|
||||
if (throwException)
|
||||
{
|
||||
ValidationProvider
|
||||
.NotEmpty(lang, emailAddress, returnUrl);
|
||||
ValidationProvider
|
||||
.EmailAddress(emailAddress);
|
||||
ValidationProvider
|
||||
.Url(returnUrl);
|
||||
}
|
||||
|
||||
//
|
||||
HandleMessageProviderPreperation(lang);
|
||||
|
||||
//
|
||||
var msgStr = IdentityMessageProvider.PasswordChangedMsg +
|
||||
(returnUrl.IsNullOrEmpty() ?
|
||||
"" :
|
||||
Environment.NewLine +
|
||||
returnUrl);
|
||||
|
||||
//
|
||||
var message = new XMessage
|
||||
{
|
||||
Message = msgStr,
|
||||
};
|
||||
message.Recievers.Add(emailAddress);
|
||||
|
||||
//
|
||||
return message;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Generate and Prepare an XMessage Instance for
|
||||
/// Reset Password Action
|
||||
/// </summary>
|
||||
/// <param name="lang">specify destination language</param>
|
||||
/// <param name="emailAddress">reciever email address</param>
|
||||
/// <param name="actionToken">a token which approved user action</param>
|
||||
/// <param name="returnUrl">return url for redirect</param>
|
||||
/// <returns>an instance of <see>XMessage</see></returns>
|
||||
private XMessage GetResetPasswordMessage(
|
||||
string lang,
|
||||
string emailAddress,
|
||||
string actionToken,
|
||||
string returnUrl
|
||||
)
|
||||
{
|
||||
//
|
||||
ValidationProvider
|
||||
.NotEmpty(lang, emailAddress, actionToken, returnUrl);
|
||||
ValidationProvider
|
||||
.EmailAddress(emailAddress);
|
||||
ValidationProvider
|
||||
.Url(returnUrl);
|
||||
|
||||
//
|
||||
HandleMessageProviderPreperation(lang);
|
||||
|
||||
//
|
||||
// Prepare Message Str ...
|
||||
var msgStr = IdentityMessageProvider.ChangePasswordMsg +
|
||||
Environment.NewLine +
|
||||
returnUrl +
|
||||
"?t=" +
|
||||
actionToken;
|
||||
|
||||
//
|
||||
var message = new XMessage
|
||||
{
|
||||
Message = msgStr,
|
||||
};
|
||||
message.Recievers.Add(emailAddress);
|
||||
|
||||
//
|
||||
return message;
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user