Skip to content

Commit

Permalink
add exception messages
Browse files Browse the repository at this point in the history
  • Loading branch information
emrecoskun705 committed Sep 21, 2023
1 parent c4112c5 commit 73a3031
Show file tree
Hide file tree
Showing 5 changed files with 99 additions and 16 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -11,29 +11,29 @@ public RegisterRequestValidator(ILocalizationService localization)
{
RuleFor(a => a.Email)
.EmailAddress().WithMessage(localization["EmailInvalidFormat"])
.NotEmpty().WithMessage("{PropertyName} can't be blank")
.NotEmpty().WithMessage(localization["EmailCantBlank"])
.NotNull();

RuleFor(a => a.UserName)
.NotEmpty().WithMessage("{PropertyName} can't be blank")
.NotEmpty().WithMessage(localization["UsernameShouldntEmpty"])
.NotNull()
.MinimumLength(4).WithMessage("{PropertyName} should be minimum 4 characters long")
.MaximumLength(15).WithMessage("{PropertyName} should be maximum of 15 characters long")
.Must(ValidUsername).WithMessage("Invalid {PropertyName} please change your {PropertyName}");
.MinimumLength(4).WithMessage(localization["UsernameMinLength"])
.MaximumLength(15).WithMessage(localization["UsernameMaxLength"])
.Must(ValidUsername).WithMessage(localization["InvalidUsername"]);

RuleFor(a => a.PhoneNumber)
.Must(OnlyDigits).WithMessage("{PropertyName} should contain only digits");
.Must(OnlyDigits).WithMessage(localization["PhoneNumberOnlyDigit"]);

RuleFor(a => a.Password)
.NotEmpty().WithMessage("{PropertyName} can't be blank")
.MinimumLength(8).WithMessage("{PropertyName} should be minimum 8 characters long")
.MaximumLength(50).WithMessage("{PropertyName} should be maximum of 50 characters long")
.Must(RequireUppercase).WithMessage("{PropertyName} must contain at least one uppercase letter.")
.Must(RequireLowercase).WithMessage("{PropertyName} must contain at least one lowercase letter.");
.NotEmpty().WithMessage(localization["PasswordShouldntEmpty"])
.MinimumLength(8).WithMessage(localization["PasswordMinLength"])
.MaximumLength(50).WithMessage(localization["PasswordMaxLength"])
.Must(RequireUppercase).WithMessage(localization["PasswordContainUppercase"])
.Must(RequireLowercase).WithMessage(localization["PasswordContainLowercase"]);

RuleFor(a => a.ConfirmPassword)
.NotEmpty().WithMessage("{PropertyName} can't be blank")
.Equal(a => a.Password).WithMessage("{PropertyName} and {ComparisonProperty} do not match");
.NotEmpty().WithMessage(localization["ConfirmPasswordCantBlank"])
.Equal(a => a.Password).WithMessage(localization["PasswordNotEquals"]);

}

Expand Down
3 changes: 1 addition & 2 deletions Unitagram.Identity/IdentityServiceRegistration.cs
Original file line number Diff line number Diff line change
Expand Up @@ -31,15 +31,14 @@ public static IServiceCollection AddIdentityServices(this IServiceCollection ser
//add identity
services.AddIdentity<ApplicationUser, ApplicationRole>(options =>
{
options.User.RequireUniqueEmail = true;
options.Password.RequiredLength = 8;
options.Password.RequireUppercase = true;
options.Password.RequireLowercase = true;

options.Lockout.DefaultLockoutTimeSpan = TimeSpan.FromMinutes(3); // Lockout duration (3 minutes)
options.Lockout.MaxFailedAccessAttempts = 8; // Maximum failed attempts before lockout (8 attempts)

// options.SignIn.RequireConfirmedEmail = true;
options.SignIn.RequireConfirmedEmail = true;
// options.Tokens.EmailConfirmationTokenProvider = "emailconfirmation";
})
.AddEntityFrameworkStores<UnitagramIdentityDbContext>()
Expand Down
8 changes: 7 additions & 1 deletion Unitagram.Identity/Services/AuthService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -134,12 +134,18 @@ public async Task<Result<RegisterResponse>> Register(RegisterRequest request)
var getUniversity = await _universityRepository.GetByDomainAsync(getEmailDomain);
if (getUniversity is null)
{
var exception = new NotFoundException(getEmailDomain);
var exception = new NotFoundException(_localization["UniversityDomainNotFound"]);
return new Result<RegisterResponse>(exception);
}

await using var transaction = await _databaseContext.Database.BeginTransactionAsync();

if ((await _userManager.FindByNameAsync(request.UserName)) is not null)
{
var exception = new ValidationException(_localization["UsernameExists"]);
return new Result<RegisterResponse>(exception);
}

//Create user
ApplicationUser user = new ApplicationUser()
{
Expand Down
39 changes: 39 additions & 0 deletions Unitagram.Infrastructure/Resources/SharedResources.en-us.resx
Original file line number Diff line number Diff line change
Expand Up @@ -35,4 +35,43 @@
<data name="EmailInvalidFormat" xml:space="preserve">
<value>Email should be in a proper email address format</value>
</data>
<data name="EmailCantBlank" xml:space="preserve">
<value>Email can not be blank.</value>
</data>
<data name="UsernameMinLength" xml:space="preserve">
<value>Username should be minimum 4 characters long</value>
</data>
<data name="UsernameMaxLength" xml:space="preserve">
<value>Username should be maximum of 15 characters long</value>
</data>
<data name="InvalidUsername" xml:space="preserve">
<value>Invalid username, please change your username.</value>
</data>
<data name="PhoneNumberOnlyDigit" xml:space="preserve">
<value>Phone number should contain only digits.</value>
</data>
<data name="PasswordMinLength" xml:space="preserve">
<value>Password should be minimum 8 characters long</value>
</data>
<data name="PasswordMaxLength" xml:space="preserve">
<value>Password should be maximum of 50 characters long</value>
</data>
<data name="PasswordContainUppercase" xml:space="preserve">
<value>Password must contain at least one uppercase letter.</value>
</data>
<data name="PasswordContainLowercase" xml:space="preserve">
<value>Password must contain at least one lowercase letter.</value>
</data>
<data name="ConfirmPasswordCantBlank" xml:space="preserve">
<value>Confirm password can't be blank</value>
</data>
<data name="PasswordNotEquals" xml:space="preserve">
<value>Şifre ve şifreyi onayla eşleşmiyor.</value>
</data>
<data name="UniversityDomainNotFound" xml:space="preserve">
<value>There is no university for given domain.</value>
</data>
<data name="UsernameExists" xml:space="preserve">
<value>Username already exists.</value>
</data>
</root>
39 changes: 39 additions & 0 deletions Unitagram.Infrastructure/Resources/SharedResources.tr-TR.resx
Original file line number Diff line number Diff line change
Expand Up @@ -42,4 +42,43 @@
<data name="EmailInvalidFormat" xml:space="preserve">
<value>Mail adresi düzgün bir formatta olmalıdır.</value>
</data>
<data name="EmailCantBlank" xml:space="preserve">
<value>Mail adresi boş olmamalıdır.</value>
</data>
<data name="UsernameMinLength" xml:space="preserve">
<value>Kullanıcı adı en az 4 karakterden oluşmalıdır.</value>
</data>
<data name="UsernameMaxLength" xml:space="preserve">
<value>Kullanıcı adı en fazla 15 karakterden oluşmalıdır.</value>
</data>
<data name="InvalidUsername" xml:space="preserve">
<value>Kullanıcı adı geçersiz, lütfen değiştiriniz.</value>
</data>
<data name="PhoneNumberOnlyDigit" xml:space="preserve">
<value>Telefon numarası sadece rakamlardan oluşmalıdır.</value>
</data>
<data name="PasswordMinLength" xml:space="preserve">
<value>Şifre en az 8 karakter olmalıdır.</value>
</data>
<data name="PasswordMaxLength" xml:space="preserve">
<value>Şifre en fazla 50 karakter olmalıdır.</value>
</data>
<data name="PasswordContainUppercase" xml:space="preserve">
<value>Şifre en az 1 büyük harf içermelidir.</value>
</data>
<data name="PasswordContainLowercase" xml:space="preserve">
<value>Şifre en az 1 küçük harf içermelidir.</value>
</data>
<data name="ConfirmPasswordCantBlank" xml:space="preserve">
<value>Şifreyi onayla boş olmamalıdır.</value>
</data>
<data name="PasswordNotEquals" xml:space="preserve">
<value>Password and confirm password does not match.</value>
</data>
<data name="UniversityDomainNotFound" xml:space="preserve">
<value>Mail adresi için bir üniversite bulunamadı.</value>
</data>
<data name="UsernameExists" xml:space="preserve">
<value>Kullanıcı adı kullanılıyor.</value>
</data>
</root>

0 comments on commit 73a3031

Please sign in to comment.