Browse Source

Implement DTO object extensions for the tenant management module.

pull/3410/head
Halil İbrahim Kalkan 7 years ago
parent
commit
d93226fbac
  1. 3
      framework/src/Volo.Abp.AutoMapper/AutoMapper/AbpAutoMapperExtensibleDtoExtensions.cs
  2. 1
      modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo/Abp/TenantManagement/ITenantAppService.cs
  3. 8
      modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo/Abp/TenantManagement/TenantCreateDto.cs
  4. 3
      modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo/Abp/TenantManagement/TenantCreateOrUpdateDtoBase.cs
  5. 2
      modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo/Abp/TenantManagement/TenantDto.cs
  6. 3
      modules/tenant-management/src/Volo.Abp.TenantManagement.Application/Volo/Abp/TenantManagement/AbpTenantManagementApplicationAutoMapperProfile.cs
  7. 14
      modules/tenant-management/src/Volo.Abp.TenantManagement.Application/Volo/Abp/TenantManagement/TenantAppService.cs
  8. 12
      modules/tenant-management/src/Volo.Abp.TenantManagement.Web/AbpTenantManagementWebAutoMapperProfile.cs
  9. 1
      modules/tenant-management/src/Volo.Abp.TenantManagement.Web/Pages/TenantManagement/Tenants/ConnectionStringsModal.cshtml.cs
  10. 1
      modules/tenant-management/src/Volo.Abp.TenantManagement.Web/Pages/TenantManagement/Tenants/CreateModal.cshtml.cs
  11. 1
      modules/tenant-management/src/Volo.Abp.TenantManagement.Web/Pages/TenantManagement/Tenants/EditModal.cshtml.cs
  12. 1
      templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/Program.cs

3
framework/src/Volo.Abp.AutoMapper/AutoMapper/AbpAutoMapperExtensibleDtoExtensions.cs

@ -25,7 +25,8 @@ namespace AutoMapper
HasExtraPropertiesObjectExtendingExtensions HasExtraPropertiesObjectExtendingExtensions
.MapExtraPropertiesTo<TSource, TDestination>( .MapExtraPropertiesTo<TSource, TDestination>(
source.ExtraProperties, source.ExtraProperties,
result result,
definitionChecks
); );
return result; return result;

1
modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo/Abp/TenantManagement/ITenantAppService.cs

@ -11,6 +11,5 @@ namespace Volo.Abp.TenantManagement
Task UpdateDefaultConnectionStringAsync(Guid id, string defaultConnectionString); Task UpdateDefaultConnectionStringAsync(Guid id, string defaultConnectionString);
Task DeleteDefaultConnectionStringAsync(Guid id); Task DeleteDefaultConnectionStringAsync(Guid id);
} }
} }

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

@ -1,9 +1,4 @@
using System.Collections.Generic; using System.ComponentModel.DataAnnotations;
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 namespace Volo.Abp.TenantManagement
{ {
@ -14,7 +9,6 @@ namespace Volo.Abp.TenantManagement
[MaxLength(256)] [MaxLength(256)]
public string AdminEmailAddress { get; set; } public string AdminEmailAddress { get; set; }
[Required] [Required]
[MaxLength(128)] [MaxLength(128)]
public string AdminPassword { get; set; } public string AdminPassword { get; set; }

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

@ -1,8 +1,9 @@
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using Volo.Abp.ObjectExtending;
namespace Volo.Abp.TenantManagement namespace Volo.Abp.TenantManagement
{ {
public abstract class TenantCreateOrUpdateDtoBase public abstract class TenantCreateOrUpdateDtoBase : ExtensibleObject
{ {
[Required] [Required]
[StringLength(TenantConsts.MaxNameLength)] [StringLength(TenantConsts.MaxNameLength)]

2
modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo/Abp/TenantManagement/TenantDto.cs

@ -3,7 +3,7 @@ using Volo.Abp.Application.Dtos;
namespace Volo.Abp.TenantManagement namespace Volo.Abp.TenantManagement
{ {
public class TenantDto : EntityDto<Guid> public class TenantDto : ExtensibleEntityDto<Guid>
{ {
public string Name { get; set; } public string Name { get; set; }
} }

3
modules/tenant-management/src/Volo.Abp.TenantManagement.Application/Volo/Abp/TenantManagement/AbpTenantManagementApplicationAutoMapperProfile.cs

@ -6,7 +6,8 @@ namespace Volo.Abp.TenantManagement
{ {
public AbpTenantManagementApplicationAutoMapperProfile() public AbpTenantManagementApplicationAutoMapperProfile()
{ {
CreateMap<Tenant, TenantDto>(); CreateMap<Tenant, TenantDto>()
.MapExtraProperties();
} }
} }
} }

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

@ -4,6 +4,7 @@ using System.Threading.Tasks;
using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Authorization;
using Volo.Abp.Application.Dtos; using Volo.Abp.Application.Dtos;
using Volo.Abp.Data; using Volo.Abp.Data;
using Volo.Abp.ObjectExtending;
namespace Volo.Abp.TenantManagement namespace Volo.Abp.TenantManagement
{ {
@ -27,13 +28,19 @@ namespace Volo.Abp.TenantManagement
public virtual async Task<TenantDto> GetAsync(Guid id) public virtual async Task<TenantDto> GetAsync(Guid id)
{ {
return ObjectMapper.Map<Tenant, TenantDto>( return ObjectMapper.Map<Tenant, TenantDto>(
await TenantRepository.GetAsync(id)); await TenantRepository.GetAsync(id)
);
} }
public virtual async Task<PagedResultDto<TenantDto>> GetListAsync(GetTenantsInput input) public virtual async Task<PagedResultDto<TenantDto>> GetListAsync(GetTenantsInput input)
{ {
var count = await TenantRepository.GetCountAsync(input.Filter); var count = await TenantRepository.GetCountAsync(input.Filter);
var list = await TenantRepository.GetListAsync(input.Sorting, input.MaxResultCount, input.SkipCount, input.Filter); var list = await TenantRepository.GetListAsync(
input.Sorting,
input.MaxResultCount,
input.SkipCount,
input.Filter
);
return new PagedResultDto<TenantDto>( return new PagedResultDto<TenantDto>(
count, count,
@ -45,6 +52,8 @@ namespace Volo.Abp.TenantManagement
public virtual async Task<TenantDto> CreateAsync(TenantCreateDto input) public virtual async Task<TenantDto> CreateAsync(TenantCreateDto input)
{ {
var tenant = await TenantManager.CreateAsync(input.Name); var tenant = await TenantManager.CreateAsync(input.Name);
input.MapExtraPropertiesTo(tenant);
await TenantRepository.InsertAsync(tenant); await TenantRepository.InsertAsync(tenant);
using (CurrentTenant.Change(tenant.Id, tenant.Name)) using (CurrentTenant.Change(tenant.Id, tenant.Name))
@ -66,6 +75,7 @@ namespace Volo.Abp.TenantManagement
{ {
var tenant = await TenantRepository.GetAsync(id); var tenant = await TenantRepository.GetAsync(id);
await TenantManager.ChangeNameAsync(tenant, input.Name); await TenantManager.ChangeNameAsync(tenant, input.Name);
input.MapExtraPropertiesTo(tenant);
await TenantRepository.UpdateAsync(tenant); await TenantRepository.UpdateAsync(tenant);
return ObjectMapper.Map<Tenant, TenantDto>(tenant); return ObjectMapper.Map<Tenant, TenantDto>(tenant);
} }

12
modules/tenant-management/src/Volo.Abp.TenantManagement.Web/AbpTenantManagementWebAutoMapperProfile.cs

@ -1,4 +1,5 @@
using AutoMapper; using AutoMapper;
using Volo.Abp.AutoMapper;
using Volo.Abp.TenantManagement.Web.Pages.TenantManagement.Tenants; using Volo.Abp.TenantManagement.Web.Pages.TenantManagement.Tenants;
namespace Volo.Abp.TenantManagement.Web namespace Volo.Abp.TenantManagement.Web
@ -6,20 +7,17 @@ namespace Volo.Abp.TenantManagement.Web
public class AbpTenantManagementWebAutoMapperProfile : Profile public class AbpTenantManagementWebAutoMapperProfile : Profile
{ {
public AbpTenantManagementWebAutoMapperProfile() public AbpTenantManagementWebAutoMapperProfile()
{
CreateRoleMappings();
}
protected virtual void CreateRoleMappings()
{ {
//List //List
CreateMap<TenantDto, EditModalModel.TenantInfoModel>(); CreateMap<TenantDto, EditModalModel.TenantInfoModel>();
//CreateModal //CreateModal
CreateMap<CreateModalModel.TenantInfoModel, TenantCreateDto>(); CreateMap<CreateModalModel.TenantInfoModel, TenantCreateDto>()
.Ignore(x => x.ExtraProperties);
//EditModal //EditModal
CreateMap<EditModalModel.TenantInfoModel, TenantUpdateDto>(); CreateMap<EditModalModel.TenantInfoModel, TenantUpdateDto>()
.Ignore(x => x.ExtraProperties);
} }
} }
} }

1
modules/tenant-management/src/Volo.Abp.TenantManagement.Web/Pages/TenantManagement/Tenants/ConnectionStringsModal.cshtml.cs

@ -2,7 +2,6 @@
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using Volo.Abp.AspNetCore.Mvc.UI.RazorPages;
namespace Volo.Abp.TenantManagement.Web.Pages.TenantManagement.Tenants namespace Volo.Abp.TenantManagement.Web.Pages.TenantManagement.Tenants
{ {

1
modules/tenant-management/src/Volo.Abp.TenantManagement.Web/Pages/TenantManagement/Tenants/CreateModal.cshtml.cs

@ -1,7 +1,6 @@
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using Volo.Abp.AspNetCore.Mvc.UI.RazorPages;
namespace Volo.Abp.TenantManagement.Web.Pages.TenantManagement.Tenants namespace Volo.Abp.TenantManagement.Web.Pages.TenantManagement.Tenants
{ {

1
modules/tenant-management/src/Volo.Abp.TenantManagement.Web/Pages/TenantManagement/Tenants/EditModal.cshtml.cs

@ -2,7 +2,6 @@ using System;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using Volo.Abp.AspNetCore.Mvc.UI.RazorPages;
namespace Volo.Abp.TenantManagement.Web.Pages.TenantManagement.Tenants namespace Volo.Abp.TenantManagement.Web.Pages.TenantManagement.Tenants
{ {

1
templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/Program.cs

@ -17,6 +17,7 @@ namespace MyCompanyName.MyProjectName.Web
.MinimumLevel.Information() .MinimumLevel.Information()
#endif #endif
.MinimumLevel.Override("Microsoft", LogEventLevel.Information) .MinimumLevel.Override("Microsoft", LogEventLevel.Information)
.MinimumLevel.Override("Microsoft.EntityFrameworkCore", LogEventLevel.Warning)
.Enrich.FromLogContext() .Enrich.FromLogContext()
.WriteTo.Async(c => c.File("Logs/logs.txt")) .WriteTo.Async(c => c.File("Logs/logs.txt"))
.CreateLogger(); .CreateLogger();

Loading…
Cancel
Save