This commit is contained in:
2026-06-04 09:44:23 +03:00
parent 4ddab34ad1
commit 033b4fc247
29 changed files with 3661 additions and 59 deletions
@@ -0,0 +1,51 @@
namespace MyOffice.Services.Verifications;
using MyOffice.Core.Helpers;
using MyOffice.Data.Models.Users;
using MyOffice.Data.Models.Verifications;
using MyOffice.Data.Repositories.Item;
public class VerificationService
{
private readonly TimeSpan _defaultExpires = TimeSpan.FromDays(1);
private readonly IVerificationCodeRepository _verificationCodeRepository;
public VerificationService(
IVerificationCodeRepository verificationCodeRepository
)
{
_verificationCodeRepository = verificationCodeRepository;
}
public VerificationCode Add(
User user,
string destination,
VerificationCodeTemplateEnum template,
VerificationCodeTypeEnum type,
DateTime? expiresOn = null,
string? metadata = null
)
{
if (user == null)
throw new ArgumentNullException(nameof(user));
if (destination == null)
throw new ArgumentNullException(nameof(destination));
var verificationCode = new VerificationCode
{
UserId = user.Id,
Code = RandomizationHelper.Generate(40),
CreatedOn = DateTime.UtcNow,
ExpiresOn = expiresOn ?? DateTime.UtcNow.Add(_defaultExpires),
Template = template.ToString(),
DestinationType = type.ToString(),
Destination = destination,
Metadata = metadata,
};
_verificationCodeRepository.Add(verificationCode);
return verificationCode;
}
}