Browse Source

validation update

pull/3107/head
Ahmet Çotur 7 years ago
parent
commit
e04f21a322
  1. 31
      modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo/Abp/TenantManagement/TenantCreateDto.cs
  2. 4
      modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo/Abp/TenantManagement/TenantCreateOrUpdateDtoBase.cs
  3. 5
      modules/tenant-management/src/Volo.Abp.TenantManagement.Application/Volo/Abp/TenantManagement/TenantAppService.cs
  4. 4
      modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo/Abp/TenantManagement/TenantConsts.cs
  5. 1
      modules/tenant-management/src/Volo.Abp.TenantManagement.HttpApi/Volo/Abp/TenantManagement/TenantController.cs

31
modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo/Abp/TenantManagement/TenantCreateDto.cs

@ -1,7 +1,34 @@
namespace Volo.Abp.TenantManagement
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Text.RegularExpressions;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Localization;
using Volo.Abp.TenantManagement.Localization;
namespace Volo.Abp.TenantManagement
{
public class TenantCreateDto : TenantCreateOrUpdateDtoBase
public class TenantCreateDto : TenantCreateOrUpdateDtoBase, IValidatableObject
{
public string AdminEmailAddress { get; set; }
public string AdminPassword { get; set; }
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
{
var l = validationContext.GetRequiredService<IStringLocalizer<AbpTenantManagementResource>>();
var isValidEmail =
Regex.IsMatch(AdminEmailAddress, TenantConsts.EmailRegex, RegexOptions.IgnoreCase);
if (string.IsNullOrWhiteSpace(AdminEmailAddress) || !isValidEmail)
{
yield return new ValidationResult(l["InvalidAdminProperties"], new[] { nameof(AdminEmailAddress) });
}
if (string.IsNullOrWhiteSpace(AdminPassword))
{
yield return new ValidationResult(l["InvalidAdminProperties"], new[] { nameof(AdminPassword) });
}
}
}
}

4
modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo/Abp/TenantManagement/TenantCreateOrUpdateDtoBase.cs

@ -3,9 +3,5 @@
public abstract class TenantCreateOrUpdateDtoBase
{
public string Name { get; set; }
public string AdminEmailAddress { get; set; }
public string AdminPassword { get; set; }
}
}

5
modules/tenant-management/src/Volo.Abp.TenantManagement.Application/Volo/Abp/TenantManagement/TenantAppService.cs

@ -44,11 +44,6 @@ namespace Volo.Abp.TenantManagement
[Authorize(TenantManagementPermissions.Tenants.Create)]
public virtual async Task<TenantDto> CreateAsync(TenantCreateDto input)
{
if (string.IsNullOrWhiteSpace(input.AdminEmailAddress) || string.IsNullOrWhiteSpace(input.AdminPassword))
{
throw new BusinessException(message: L["InvalidAdminProperties"]);
}
var tenant = await TenantManager.CreateAsync(input.Name);
await TenantRepository.InsertAsync(tenant);

4
modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo/Abp/TenantManagement/TenantConsts.cs

@ -3,5 +3,9 @@
public static class TenantConsts
{
public const int MaxNameLength = 64;
public const string EmailRegex =
@"^(?("")("".+?(?<!\\)""@)|(([0-9a-z]((\.(?!\.))|[-!#\$%&'\*\+/=\?\^`\{\}\|~\w])*)(?<=[0-9a-z])@))" +
@"(?(\[)(\[(\d{1,3}\.){3}\d{1,3}\])|(([0-9a-z][-0-9a-z]*[0-9a-z]*\.)+[a-z0-9][\-a-z0-9]{0,22}[a-z0-9]))$";
}
}

1
modules/tenant-management/src/Volo.Abp.TenantManagement.HttpApi/Volo/Abp/TenantManagement/TenantController.cs

@ -35,6 +35,7 @@ namespace Volo.Abp.TenantManagement
[HttpPost]
public virtual Task<TenantDto> CreateAsync(TenantCreateDto input)
{
ValidateModel();
return _service.CreateAsync(input);
}

Loading…
Cancel
Save