Browse Source

Rename and refactor module extensions.

pull/3834/head
Halil İbrahim Kalkan 6 years ago
parent
commit
c4955719b1
  1. 187
      framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/ObjectExtending/CachedObjectExtensionsDtoService.cs
  2. 14
      framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/ObjectExtending/EntityExtensionDto.cs
  3. 2
      framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/ObjectExtending/ExtensionPropertyApiCreateDto.cs
  4. 23
      framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/ObjectExtending/ExtensionPropertyApiDto.cs
  5. 2
      framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/ObjectExtending/ExtensionPropertyApiGetDto.cs
  6. 2
      framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/ObjectExtending/ExtensionPropertyApiUpdateDto.cs
  7. 6
      framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/ObjectExtending/ExtensionPropertyAttributeDto.cs
  8. 10
      framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/ObjectExtending/ExtensionPropertyDto.cs
  9. 12
      framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/ObjectExtending/ExtensionPropertyUiDto.cs
  10. 2
      framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/ObjectExtending/ExtensionPropertyUiFormDto.cs
  11. 2
      framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/ObjectExtending/ExtensionPropertyUiTableDto.cs
  12. 9
      framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/ObjectExtending/LocalizableStringDto.cs
  13. 23
      framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/ObjectExtending/ModuleEntityObjectPropertyExtensionApiConfiguration.cs
  14. 11
      framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/ObjectExtending/ModuleObjectExtensionDto.cs
  15. 12
      framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/ObjectExtending/ModuleObjectExtraPropertyUiExtensionDto.cs
  16. 7
      framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/ObjectExtending/ObjectExtensionConfigurationDto.cs
  17. 9
      framework/src/Volo.Abp.Localization/Volo/Abp/Localization/LocalizableString.cs
  18. 23
      framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/Modularity/EntityExtensionConfiguration.cs
  19. 9
      framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/Modularity/EntityExtensionConfigurationDictionary.cs
  20. 23
      framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/Modularity/ExtensionPropertyApiConfiguration.cs
  21. 2
      framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/Modularity/ExtensionPropertyApiCreateConfiguration.cs
  22. 2
      framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/Modularity/ExtensionPropertyApiGetConfiguration.cs
  23. 2
      framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/Modularity/ExtensionPropertyApiUpdateConfiguration.cs
  24. 30
      framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/Modularity/ExtensionPropertyConfiguration.cs
  25. 9
      framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/Modularity/ExtensionPropertyConfigurationDictionary.cs
  26. 2
      framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/Modularity/ExtensionPropertyEntityConfiguration.cs
  27. 23
      framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/Modularity/ExtensionPropertyUiConfiguration.cs
  28. 2
      framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/Modularity/ExtensionPropertyUiFormConfiguration.cs
  29. 2
      framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/Modularity/ExtensionPropertyUiTableConfiguration.cs
  30. 9
      framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/Modularity/ModuleEntityObjectExtensionConfigurationDictionary.cs
  31. 23
      framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/Modularity/ModuleEntityObjectPropertyExtensionApiConfiguration.cs
  32. 9
      framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/Modularity/ModuleEntityObjectPropertyExtensionConfigurationDictionary.cs
  33. 23
      framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/Modularity/ModuleEntityObjectPropertyExtensionUIConfiguration.cs
  34. 20
      framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/Modularity/ModuleExtensionConfiguration.cs
  35. 9
      framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/Modularity/ModuleExtensionConfigurationDictionary.cs
  36. 8
      framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/Modularity/ModuleExtensionConfigurationDictionaryExtensions.cs
  37. 10
      framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/Modularity/ModuleExtensionConfigurationExtensions.cs
  38. 44
      framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/Modularity/ModuleExtensionConfigurationHelper.cs
  39. 12
      framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/Modularity/ModuleObjectExtensionConfiguration.cs
  40. 9
      framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/Modularity/ModuleObjectExtensionConfigurationDictionary.cs
  41. 6
      framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/ModuleObjectExtensionManagerExtensions.cs
  42. 9
      modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/ObjectExtending/IdentityModuleExtensionConfiguration.cs
  43. 18
      modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/ObjectExtending/IdentityModuleExtensionConfigurationExtensions.cs
  44. 9
      modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/ObjectExtending/IdentityModuleObjectExtensionConfiguration.cs
  45. 18
      modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/ObjectExtending/IdentityModuleObjectExtensionConfigurationExtensions.cs
  46. 6
      modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/ObjectExtending/IdentityModuleObjectExtensionConfigurationsExtensions.cs
  47. 2
      modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/AbpIdentityDomainModule.cs

187
framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/ObjectExtending/CachedObjectExtensionsDtoService.cs

@ -1,4 +1,5 @@
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq;
using Volo.Abp.DependencyInjection; using Volo.Abp.DependencyInjection;
using Volo.Abp.Localization; using Volo.Abp.Localization;
using Volo.Abp.ObjectExtending; using Volo.Abp.ObjectExtending;
@ -30,8 +31,6 @@ namespace Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending
protected virtual ObjectExtensionsDto GenerateCacheValue() protected virtual ObjectExtensionsDto GenerateCacheValue()
{ {
//TODO: Obviously needs refactoring!
var objectExtensionsDto = new ObjectExtensionsDto var objectExtensionsDto = new ObjectExtensionsDto
{ {
Modules = new Dictionary<string, ModuleExtensionDto>() Modules = new Dictionary<string, ModuleExtensionDto>()
@ -39,80 +38,118 @@ namespace Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending
foreach (var moduleConfig in ObjectExtensionManager.Instance.Modules()) foreach (var moduleConfig in ObjectExtensionManager.Instance.Modules())
{ {
var moduleExtensionDto = objectExtensionsDto.Modules[moduleConfig.Key] = new ModuleExtensionDto objectExtensionsDto.Modules[moduleConfig.Key] = CreateModuleExtensionDto(moduleConfig.Value);
{ }
Objects = new Dictionary<string, ModuleObjectExtensionDto>()
}; return objectExtensionsDto;
}
protected virtual ModuleExtensionDto CreateModuleExtensionDto(
ModuleExtensionConfiguration moduleConfig)
{
var moduleExtensionDto = new ModuleExtensionDto
{
Entities = new Dictionary<string, EntityExtensionDto>()
};
foreach (var objectConfig in moduleConfig.Entities)
{
moduleExtensionDto.Entities[objectConfig.Key] = GetEntityExtensionDto(objectConfig.Value);
}
foreach (var objectConfig in moduleConfig.Value.Entities) foreach (var customConfig in moduleConfig.Configuration.Where(c => !c.Key.StartsWith("_")))
{
moduleExtensionDto.Configuration[customConfig.Key] = customConfig.Value;
}
return moduleExtensionDto;
}
protected virtual EntityExtensionDto GetEntityExtensionDto(
EntityExtensionConfiguration entityConfig)
{
var entityExtensionDto = new EntityExtensionDto
{
Properties = new Dictionary<string, ExtensionPropertyDto>(),
Configuration = new Dictionary<string, object>()
};
foreach (var propertyConfig in entityConfig.GetProperties())
{
if (!propertyConfig.IsAvailableToClients)
{ {
var moduleObjectExtensionDto = moduleExtensionDto.Objects[objectConfig.Key] = continue;
new ModuleObjectExtensionDto }
{
ExtraProperties = new Dictionary<string, ModuleObjectExtraPropertyExtensionDto>() entityExtensionDto.Properties[propertyConfig.Name] = CreateExtensionPropertyDto(propertyConfig);
}; }
foreach (var customConfig in entityConfig.Configuration.Where(c => !c.Key.StartsWith("_")))
{
entityExtensionDto.Configuration[customConfig.Key] = customConfig.Value;
}
foreach (var propertyConfig in objectConfig.Value.GetProperties()) return entityExtensionDto;
}
protected virtual ExtensionPropertyDto CreateExtensionPropertyDto(
ExtensionPropertyConfiguration propertyConfig)
{
var extensionPropertyDto = new ExtensionPropertyDto
{
Type = TypeHelper.GetFullNameHandlingNullableAndGenerics(propertyConfig.Type),
TypeSimple = TypeHelper.GetSimplifiedName(propertyConfig.Type),
Attributes = new List<ExtensionPropertyAttributeDto>(),
DisplayName = CreateDisplayNameDto(propertyConfig),
Configuration = new Dictionary<string, object>(),
Api = new ExtensionPropertyApiDto
{
OnGet = new ExtensionPropertyApiGetDto
{
IsAvailable = propertyConfig.Api.OnGet.IsAvailable
},
OnCreate = new ExtensionPropertyApiCreateDto
{ {
if (!propertyConfig.IsAvailableToClients) IsAvailable = propertyConfig.Api.OnCreate.IsAvailable
{ },
continue; OnUpdate = new ExtensionPropertyApiUpdateDto
} {
IsAvailable = propertyConfig.Api.OnUpdate.IsAvailable
var propertyExtensionDto = moduleObjectExtensionDto.ExtraProperties[propertyConfig.Name] = }
new ModuleObjectExtraPropertyExtensionDto },
{ Ui = new ExtensionPropertyUiDto
Type = TypeHelper.GetFullNameHandlingNullableAndGenerics(propertyConfig.Type), {
TypeSimple = TypeHelper.GetSimplifiedName(propertyConfig.Type), OnCreateForm = new ExtensionPropertyUiFormDto
Attributes = new List<ModuleObjectExtraPropertyAttributeDto>(), {
DisplayName = CreateDisplayNameDto(propertyConfig), IsVisible = propertyConfig.UI.OnCreateForm.IsVisible
Api = new ModuleEntityObjectPropertyExtensionApiConfigurationDto },
{ OnEditForm = new ExtensionPropertyUiFormDto
OnGet = new ModuleEntityObjectPropertyExtensionApiGetConfigurationDto {
{ IsVisible = propertyConfig.UI.OnEditForm.IsVisible
IsAvailable = propertyConfig.Api.OnGet.IsAvailable },
}, OnTable = new ExtensionPropertyUiTableDto
OnCreate = new ModuleEntityObjectPropertyExtensionApiCreateConfigurationDto {
{ IsVisible = propertyConfig.UI.OnTable.IsVisible
IsAvailable = propertyConfig.Api.OnCreate.IsAvailable
},
OnUpdate = new ModuleEntityObjectPropertyExtensionApiUpdateConfigurationDto
{
IsAvailable = propertyConfig.Api.OnUpdate.IsAvailable
}
},
Ui = new ModuleObjectExtraPropertyUiExtensionDto
{
OnCreateForm = new ModuleObjectExtraPropertyUiFormExtensionDto
{
IsVisible = propertyConfig.UI.OnCreateForm.IsVisible
},
OnEditForm = new ModuleObjectExtraPropertyUiFormExtensionDto
{
IsVisible = propertyConfig.UI.OnEditForm.IsVisible
},
OnTable = new ModuleObjectExtraPropertyUiTableExtensionDto
{
IsVisible = propertyConfig.UI.OnTable.IsVisible
}
}
};
foreach (var attribute in propertyConfig.Attributes)
{
propertyExtensionDto.Attributes.Add(
ModuleObjectExtraPropertyAttributeDto.Create(attribute)
);
}
} }
} }
};
foreach (var attribute in propertyConfig.Attributes)
{
extensionPropertyDto.Attributes.Add(
ExtensionPropertyAttributeDto.Create(attribute)
);
} }
return objectExtensionsDto; foreach (var customConfig in propertyConfig.Configuration.Where(c => !c.Key.StartsWith("_")))
{
extensionPropertyDto.Configuration[customConfig.Key] = customConfig.Value;
}
return extensionPropertyDto;
} }
private static LocalizableStringDto CreateDisplayNameDto( protected virtual LocalizableStringDto CreateDisplayNameDto(ExtensionPropertyConfiguration propertyConfig)
ModuleEntityObjectPropertyExtensionConfiguration propertyConfig)
{ {
if (propertyConfig.DisplayName == null) if (propertyConfig.DisplayName == null)
{ {
@ -121,20 +158,18 @@ namespace Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending
if (propertyConfig.DisplayName is LocalizableString localizableStringInstance) if (propertyConfig.DisplayName is LocalizableString localizableStringInstance)
{ {
return new LocalizableStringDto return new LocalizableStringDto(
{ localizableStringInstance.Name,
Name = localizableStringInstance.Name, localizableStringInstance.ResourceType != null
Resource = LocalizationResourceNameAttribute.GetName(localizableStringInstance.ResourceType) ? LocalizationResourceNameAttribute.GetName(localizableStringInstance.ResourceType)
}; : null
);
} }
if (propertyConfig.DisplayName is FixedLocalizableString fixedLocalizableString) if (propertyConfig.DisplayName is FixedLocalizableString fixedLocalizableString)
{ {
return new LocalizableStringDto // "_" means don't use the default resource, but directly use the name.
{ return new LocalizableStringDto(fixedLocalizableString.Value, "_");
Name = fixedLocalizableString.Value,
Resource = "_"
};
} }
return null; return null;

14
framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/ObjectExtending/EntityExtensionDto.cs

@ -0,0 +1,14 @@
using System;
using System.Collections.Generic;
namespace Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending
{
[Serializable]
public class EntityExtensionDto
{
public Dictionary<string, ExtensionPropertyDto> Properties { get; set; }
public Dictionary<string, object> Configuration { get; set; }
}
}

2
framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/ObjectExtending/ModuleEntityObjectPropertyExtensionApiGetConfiguration.cs → framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/ObjectExtending/ExtensionPropertyApiCreateDto.cs

@ -3,7 +3,7 @@
namespace Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending namespace Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending
{ {
[Serializable] [Serializable]
public class ModuleEntityObjectPropertyExtensionApiGetConfigurationDto public class ExtensionPropertyApiCreateDto
{ {
/// <summary> /// <summary>
/// Default: true. /// Default: true.

23
framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/ObjectExtending/ExtensionPropertyApiDto.cs

@ -0,0 +1,23 @@
using JetBrains.Annotations;
namespace Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending
{
public class ExtensionPropertyApiDto
{
[NotNull]
public ExtensionPropertyApiGetDto OnGet { get; set; }
[NotNull]
public ExtensionPropertyApiCreateDto OnCreate { get; set; }
[NotNull]
public ExtensionPropertyApiUpdateDto OnUpdate { get; set; }
public ExtensionPropertyApiDto()
{
OnGet = new ExtensionPropertyApiGetDto();
OnCreate = new ExtensionPropertyApiCreateDto();
OnUpdate = new ExtensionPropertyApiUpdateDto();
}
}
}

2
framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/ObjectExtending/ModuleEntityObjectPropertyExtensionApiCreateConfiguration.cs → framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/ObjectExtending/ExtensionPropertyApiGetDto.cs

@ -3,7 +3,7 @@
namespace Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending namespace Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending
{ {
[Serializable] [Serializable]
public class ModuleEntityObjectPropertyExtensionApiCreateConfigurationDto public class ExtensionPropertyApiGetDto
{ {
/// <summary> /// <summary>
/// Default: true. /// Default: true.

2
framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/ObjectExtending/ModuleEntityObjectPropertyExtensionApiUpdateConfiguration.cs → framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/ObjectExtending/ExtensionPropertyApiUpdateDto.cs

@ -3,7 +3,7 @@
namespace Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending namespace Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending
{ {
[Serializable] [Serializable]
public class ModuleEntityObjectPropertyExtensionApiUpdateConfigurationDto public class ExtensionPropertyApiUpdateDto
{ {
/// <summary> /// <summary>
/// Default: true. /// Default: true.

6
framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/ObjectExtending/ModuleObjectExtraPropertyAttributeDto.cs → framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/ObjectExtending/ExtensionPropertyAttributeDto.cs

@ -6,16 +6,16 @@ using Volo.Abp.Reflection;
namespace Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending namespace Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending
{ {
[Serializable] [Serializable]
public class ModuleObjectExtraPropertyAttributeDto public class ExtensionPropertyAttributeDto
{ {
public string Type { get; set; } public string Type { get; set; }
public string TypeSimple { get; set; } public string TypeSimple { get; set; }
public Dictionary<string, object> Configuration { get; set; } public Dictionary<string, object> Configuration { get; set; }
public static ModuleObjectExtraPropertyAttributeDto Create(Attribute attribute) public static ExtensionPropertyAttributeDto Create(Attribute attribute)
{ {
var attributeType = attribute.GetType(); var attributeType = attribute.GetType();
var dto = new ModuleObjectExtraPropertyAttributeDto var dto = new ExtensionPropertyAttributeDto
{ {
Type = TypeHelper.GetFullNameHandlingNullableAndGenerics(attributeType), Type = TypeHelper.GetFullNameHandlingNullableAndGenerics(attributeType),
TypeSimple = TypeHelper.GetSimplifiedName(attributeType), TypeSimple = TypeHelper.GetSimplifiedName(attributeType),

10
framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/ObjectExtending/ModuleObjectExtraPropertyExtensionDto.cs → framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/ObjectExtending/ExtensionPropertyDto.cs

@ -5,7 +5,7 @@ using JetBrains.Annotations;
namespace Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending namespace Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending
{ {
[Serializable] [Serializable]
public class ModuleObjectExtraPropertyExtensionDto public class ExtensionPropertyDto
{ {
public string Type { get; set; } public string Type { get; set; }
@ -14,10 +14,12 @@ namespace Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending
[CanBeNull] [CanBeNull]
public LocalizableStringDto DisplayName { get; set; } public LocalizableStringDto DisplayName { get; set; }
public ModuleEntityObjectPropertyExtensionApiConfigurationDto Api { get; set; } public ExtensionPropertyApiDto Api { get; set; }
public ModuleObjectExtraPropertyUiExtensionDto Ui { get; set; } public ExtensionPropertyUiDto Ui { get; set; }
public List<ModuleObjectExtraPropertyAttributeDto> Attributes { get; set; } public List<ExtensionPropertyAttributeDto> Attributes { get; set; }
public Dictionary<string, object> Configuration { get; set; }
} }
} }

12
framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/ObjectExtending/ExtensionPropertyUiDto.cs

@ -0,0 +1,12 @@
using System;
namespace Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending
{
[Serializable]
public class ExtensionPropertyUiDto
{
public ExtensionPropertyUiTableDto OnTable { get; set; }
public ExtensionPropertyUiFormDto OnCreateForm { get; set; }
public ExtensionPropertyUiFormDto OnEditForm { get; set; }
}
}

2
framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/ObjectExtending/ModuleObjectExtraPropertyUiFormExtensionDto.cs → framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/ObjectExtending/ExtensionPropertyUiFormDto.cs

@ -3,7 +3,7 @@
namespace Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending namespace Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending
{ {
[Serializable] [Serializable]
public class ModuleObjectExtraPropertyUiFormExtensionDto public class ExtensionPropertyUiFormDto
{ {
public bool IsVisible { get; set; } public bool IsVisible { get; set; }
} }

2
framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/ObjectExtending/ModuleObjectExtraPropertyUiTableExtensionDto.cs → framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/ObjectExtending/ExtensionPropertyUiTableDto.cs

@ -3,7 +3,7 @@
namespace Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending namespace Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending
{ {
[Serializable] [Serializable]
public class ModuleObjectExtraPropertyUiTableExtensionDto public class ExtensionPropertyUiTableDto
{ {
public bool IsVisible { get; set; } public bool IsVisible { get; set; }
} }

9
framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/ObjectExtending/LocalizableStringDto.cs

@ -6,9 +6,16 @@ namespace Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending
[Serializable] [Serializable]
public class LocalizableStringDto public class LocalizableStringDto
{ {
public string Name { get; set; } [NotNull]
public string Name { get; private set; }
[CanBeNull] [CanBeNull]
public string Resource { get; set; } public string Resource { get; set; }
public LocalizableStringDto([NotNull] string name, string resource = null)
{
Name = Check.NotNullOrEmpty(name, nameof(name));
Resource = resource;
}
} }
} }

23
framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/ObjectExtending/ModuleEntityObjectPropertyExtensionApiConfiguration.cs

@ -1,23 +0,0 @@
using JetBrains.Annotations;
namespace Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending
{
public class ModuleEntityObjectPropertyExtensionApiConfigurationDto
{
[NotNull]
public ModuleEntityObjectPropertyExtensionApiGetConfigurationDto OnGet { get; set; }
[NotNull]
public ModuleEntityObjectPropertyExtensionApiCreateConfigurationDto OnCreate { get; set; }
[NotNull]
public ModuleEntityObjectPropertyExtensionApiUpdateConfigurationDto OnUpdate { get; set; }
public ModuleEntityObjectPropertyExtensionApiConfigurationDto()
{
OnGet = new ModuleEntityObjectPropertyExtensionApiGetConfigurationDto();
OnCreate = new ModuleEntityObjectPropertyExtensionApiCreateConfigurationDto();
OnUpdate = new ModuleEntityObjectPropertyExtensionApiUpdateConfigurationDto();
}
}
}

11
framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/ObjectExtending/ModuleObjectExtensionDto.cs

@ -1,11 +0,0 @@
using System;
using System.Collections.Generic;
namespace Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending
{
[Serializable]
public class ModuleObjectExtensionDto
{
public Dictionary<string, ModuleObjectExtraPropertyExtensionDto> ExtraProperties { get; set; }
}
}

12
framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/ObjectExtending/ModuleObjectExtraPropertyUiExtensionDto.cs

@ -1,12 +0,0 @@
using System;
namespace Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending
{
[Serializable]
public class ModuleObjectExtraPropertyUiExtensionDto
{
public ModuleObjectExtraPropertyUiTableExtensionDto OnTable { get; set; }
public ModuleObjectExtraPropertyUiFormExtensionDto OnCreateForm { get; set; }
public ModuleObjectExtraPropertyUiFormExtensionDto OnEditForm { get; set; }
}
}

7
framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/ObjectExtending/ObjectExtensionConfigurationDto.cs

@ -6,7 +6,8 @@ namespace Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending
[Serializable] [Serializable]
public class ModuleExtensionDto public class ModuleExtensionDto
{ {
public Dictionary<string, ModuleObjectExtensionDto> Objects { get; set; } public Dictionary<string, EntityExtensionDto> Entities { get; set; }
}
}
public Dictionary<string, object> Configuration { get; set; }
}
}

9
framework/src/Volo.Abp.Localization/Volo/Abp/Localization/LocalizableString.cs

@ -1,18 +1,21 @@
using System; using System;
using JetBrains.Annotations;
using Microsoft.Extensions.Localization; using Microsoft.Extensions.Localization;
namespace Volo.Abp.Localization namespace Volo.Abp.Localization
{ {
public class LocalizableString : ILocalizableString public class LocalizableString : ILocalizableString
{ {
[CanBeNull]
public Type ResourceType { get; } public Type ResourceType { get; }
[NotNull]
public string Name { get; } public string Name { get; }
public LocalizableString(Type resourceType, string name) public LocalizableString(Type resourceType, [NotNull] string name)
{ {
Name = Check.NotNullOrEmpty(name, nameof(name));
ResourceType = resourceType; ResourceType = resourceType;
Name = name;
} }
public LocalizedString Localize(IStringLocalizerFactory stringLocalizerFactory) public LocalizedString Localize(IStringLocalizerFactory stringLocalizerFactory)
@ -20,7 +23,7 @@ namespace Volo.Abp.Localization
return stringLocalizerFactory.Create(ResourceType)[Name]; return stringLocalizerFactory.Create(ResourceType)[Name];
} }
public static LocalizableString Create<TResource>(string name) public static LocalizableString Create<TResource>([NotNull] string name)
{ {
return new LocalizableString(typeof(TResource), name); return new LocalizableString(typeof(TResource), name);
} }

23
framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/Modularity/ModuleEntityObjectExtensionConfiguration.cs → framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/Modularity/EntityExtensionConfiguration.cs

@ -5,24 +5,27 @@ using JetBrains.Annotations;
namespace Volo.Abp.ObjectExtending.Modularity namespace Volo.Abp.ObjectExtending.Modularity
{ {
public class ModuleEntityObjectExtensionConfiguration public class EntityExtensionConfiguration
{ {
[NotNull] [NotNull]
protected ModuleEntityObjectPropertyExtensionConfigurationDictionary Properties { get; } protected ExtensionPropertyConfigurationDictionary Properties { get; }
[NotNull] [NotNull]
public List<Action<ObjectExtensionValidationContext>> Validators { get; } public List<Action<ObjectExtensionValidationContext>> Validators { get; }
public ModuleEntityObjectExtensionConfiguration() public Dictionary<string, object> Configuration { get; }
public EntityExtensionConfiguration()
{ {
Properties = new ModuleEntityObjectPropertyExtensionConfigurationDictionary(); Properties = new ExtensionPropertyConfigurationDictionary();
Validators = new List<Action<ObjectExtensionValidationContext>>(); Validators = new List<Action<ObjectExtensionValidationContext>>();
Configuration = new Dictionary<string, object>();
} }
[NotNull] [NotNull]
public virtual ModuleEntityObjectExtensionConfiguration AddOrUpdateProperty<TProperty>( public virtual EntityExtensionConfiguration AddOrUpdateProperty<TProperty>(
[NotNull] string propertyName, [NotNull] string propertyName,
[CanBeNull] Action<ModuleEntityObjectPropertyExtensionConfiguration> configureAction = null) [CanBeNull] Action<ExtensionPropertyConfiguration> configureAction = null)
{ {
return AddOrUpdateProperty( return AddOrUpdateProperty(
typeof(TProperty), typeof(TProperty),
@ -32,17 +35,17 @@ namespace Volo.Abp.ObjectExtending.Modularity
} }
[NotNull] [NotNull]
public virtual ModuleEntityObjectExtensionConfiguration AddOrUpdateProperty( public virtual EntityExtensionConfiguration AddOrUpdateProperty(
[NotNull] Type propertyType, [NotNull] Type propertyType,
[NotNull] string propertyName, [NotNull] string propertyName,
[CanBeNull] Action<ModuleEntityObjectPropertyExtensionConfiguration> configureAction = null) [CanBeNull] Action<ExtensionPropertyConfiguration> configureAction = null)
{ {
Check.NotNull(propertyType, nameof(propertyType)); Check.NotNull(propertyType, nameof(propertyType));
Check.NotNull(propertyName, nameof(propertyName)); Check.NotNull(propertyName, nameof(propertyName));
var propertyInfo = Properties.GetOrAdd( var propertyInfo = Properties.GetOrAdd(
propertyName, propertyName,
() => new ModuleEntityObjectPropertyExtensionConfiguration(this, propertyType, propertyName) () => new ExtensionPropertyConfiguration(this, propertyType, propertyName)
); );
configureAction?.Invoke(propertyInfo); configureAction?.Invoke(propertyInfo);
@ -51,7 +54,7 @@ namespace Volo.Abp.ObjectExtending.Modularity
} }
[NotNull] [NotNull]
public virtual ImmutableList<ModuleEntityObjectPropertyExtensionConfiguration> GetProperties() public virtual ImmutableList<ExtensionPropertyConfiguration> GetProperties()
{ {
return Properties.Values.ToImmutableList(); return Properties.Values.ToImmutableList();
} }

9
framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/Modularity/EntityExtensionConfigurationDictionary.cs

@ -0,0 +1,9 @@
using System.Collections.Generic;
namespace Volo.Abp.ObjectExtending.Modularity
{
public class EntityExtensionConfigurationDictionary : Dictionary<string, EntityExtensionConfiguration>
{
}
}

23
framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/Modularity/ExtensionPropertyApiConfiguration.cs

@ -0,0 +1,23 @@
using JetBrains.Annotations;
namespace Volo.Abp.ObjectExtending.Modularity
{
public class ExtensionPropertyApiConfiguration
{
[NotNull]
public ExtensionPropertyApiGetConfiguration OnGet { get; }
[NotNull]
public ExtensionPropertyApiCreateConfiguration OnCreate { get; }
[NotNull]
public ExtensionPropertyApiUpdateConfiguration OnUpdate { get; }
public ExtensionPropertyApiConfiguration()
{
OnGet = new ExtensionPropertyApiGetConfiguration();
OnCreate = new ExtensionPropertyApiCreateConfiguration();
OnUpdate = new ExtensionPropertyApiUpdateConfiguration();
}
}
}

2
framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/Modularity/ModuleEntityObjectPropertyExtensionApiGetConfiguration.cs → framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/Modularity/ExtensionPropertyApiCreateConfiguration.cs

@ -1,6 +1,6 @@
namespace Volo.Abp.ObjectExtending.Modularity namespace Volo.Abp.ObjectExtending.Modularity
{ {
public class ModuleEntityObjectPropertyExtensionApiGetConfiguration public class ExtensionPropertyApiCreateConfiguration
{ {
/// <summary> /// <summary>
/// Default: true. /// Default: true.

2
framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/Modularity/ModuleEntityObjectPropertyExtensionEntityConfiguration.cs → framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/Modularity/ExtensionPropertyApiGetConfiguration.cs

@ -1,6 +1,6 @@
namespace Volo.Abp.ObjectExtending.Modularity namespace Volo.Abp.ObjectExtending.Modularity
{ {
public class ModuleEntityObjectPropertyExtensionEntityConfiguration public class ExtensionPropertyApiGetConfiguration
{ {
/// <summary> /// <summary>
/// Default: true. /// Default: true.

2
framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/Modularity/ModuleEntityObjectPropertyExtensionApiCreateConfiguration.cs → framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/Modularity/ExtensionPropertyApiUpdateConfiguration.cs

@ -1,6 +1,6 @@
namespace Volo.Abp.ObjectExtending.Modularity namespace Volo.Abp.ObjectExtending.Modularity
{ {
public class ModuleEntityObjectPropertyExtensionApiCreateConfiguration public class ExtensionPropertyApiUpdateConfiguration
{ {
/// <summary> /// <summary>
/// Default: true. /// Default: true.

30
framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/Modularity/ModuleEntityObjectPropertyExtensionConfiguration.cs → framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/Modularity/ExtensionPropertyConfiguration.cs

@ -5,10 +5,10 @@ using Volo.Abp.Localization;
namespace Volo.Abp.ObjectExtending.Modularity namespace Volo.Abp.ObjectExtending.Modularity
{ {
public class ModuleEntityObjectPropertyExtensionConfiguration : IHasNameWithLocalizableDisplayName public class ExtensionPropertyConfiguration : IHasNameWithLocalizableDisplayName
{ {
[NotNull] [NotNull]
public ModuleEntityObjectExtensionConfiguration EntityObjectExtensionConfiguration { get; } public EntityExtensionConfiguration EntityExtensionConfiguration { get; }
[NotNull] [NotNull]
public string Name { get; } public string Name { get; }
@ -26,11 +26,8 @@ namespace Volo.Abp.ObjectExtending.Modularity
public ILocalizableString DisplayName { get; set; } public ILocalizableString DisplayName { get; set; }
[NotNull] [NotNull]
public Dictionary<object, object> Configuration { get; } public Dictionary<string, object> Configuration { get; }
[NotNull]
public ModuleEntityObjectPropertyExtensionEntityConfiguration Entity { get; }
/// <summary> /// <summary>
/// Single point to enable/disable this property for the clients (UI and API). /// Single point to enable/disable this property for the clients (UI and API).
/// If this is false, the configuration made in the <see cref="UI"/> and the <see cref="Api"/> /// If this is false, the configuration made in the <see cref="UI"/> and the <see cref="Api"/>
@ -40,27 +37,30 @@ namespace Volo.Abp.ObjectExtending.Modularity
public bool IsAvailableToClients { get; set; } = true; public bool IsAvailableToClients { get; set; } = true;
[NotNull] [NotNull]
public ModuleEntityObjectPropertyExtensionUIConfiguration UI { get; } public ExtensionPropertyEntityConfiguration Entity { get; }
[NotNull]
public ExtensionPropertyUiConfiguration UI { get; }
[NotNull] [NotNull]
public ModuleEntityObjectPropertyExtensionApiConfiguration Api { get; } public ExtensionPropertyApiConfiguration Api { get; }
public ModuleEntityObjectPropertyExtensionConfiguration( public ExtensionPropertyConfiguration(
[NotNull] ModuleEntityObjectExtensionConfiguration entityObjectExtensionConfiguration, [NotNull] EntityExtensionConfiguration entityExtensionConfiguration,
[NotNull] Type type, [NotNull] Type type,
[NotNull] string name) [NotNull] string name)
{ {
EntityObjectExtensionConfiguration = Check.NotNull(entityObjectExtensionConfiguration, nameof(entityObjectExtensionConfiguration)); EntityExtensionConfiguration = Check.NotNull(entityExtensionConfiguration, nameof(entityExtensionConfiguration));
Type = Check.NotNull(type, nameof(type)); Type = Check.NotNull(type, nameof(type));
Name = Check.NotNull(name, nameof(name)); Name = Check.NotNull(name, nameof(name));
Configuration = new Dictionary<object, object>(); Configuration = new Dictionary<string, object>();
Attributes = new List<Attribute>(); Attributes = new List<Attribute>();
Validators = new List<Action<ObjectExtensionPropertyValidationContext>>(); Validators = new List<Action<ObjectExtensionPropertyValidationContext>>();
Entity = new ModuleEntityObjectPropertyExtensionEntityConfiguration(); Entity = new ExtensionPropertyEntityConfiguration();
UI = new ModuleEntityObjectPropertyExtensionUIConfiguration(); UI = new ExtensionPropertyUiConfiguration();
Api = new ModuleEntityObjectPropertyExtensionApiConfiguration(); Api = new ExtensionPropertyApiConfiguration();
} }
} }
} }

9
framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/Modularity/ExtensionPropertyConfigurationDictionary.cs

@ -0,0 +1,9 @@
using System.Collections.Generic;
namespace Volo.Abp.ObjectExtending.Modularity
{
public class ExtensionPropertyConfigurationDictionary : Dictionary<string, ExtensionPropertyConfiguration>
{
}
}

2
framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/Modularity/ModuleEntityObjectPropertyExtensionApiUpdateConfiguration.cs → framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/Modularity/ExtensionPropertyEntityConfiguration.cs

@ -1,6 +1,6 @@
namespace Volo.Abp.ObjectExtending.Modularity namespace Volo.Abp.ObjectExtending.Modularity
{ {
public class ModuleEntityObjectPropertyExtensionApiUpdateConfiguration public class ExtensionPropertyEntityConfiguration
{ {
/// <summary> /// <summary>
/// Default: true. /// Default: true.

23
framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/Modularity/ExtensionPropertyUiConfiguration.cs

@ -0,0 +1,23 @@
using JetBrains.Annotations;
namespace Volo.Abp.ObjectExtending.Modularity
{
public class ExtensionPropertyUiConfiguration
{
[NotNull]
public ExtensionPropertyUiTableConfiguration OnTable { get; }
[NotNull]
public ExtensionPropertyUiFormConfiguration OnCreateForm { get; }
[NotNull]
public ExtensionPropertyUiFormConfiguration OnEditForm { get; }
public ExtensionPropertyUiConfiguration()
{
OnTable = new ExtensionPropertyUiTableConfiguration();
OnCreateForm = new ExtensionPropertyUiFormConfiguration();
OnEditForm = new ExtensionPropertyUiFormConfiguration();
}
}
}

2
framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/Modularity/ModuleEntityObjectPropertyExtensionUIFormConfiguration.cs → framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/Modularity/ExtensionPropertyUiFormConfiguration.cs

@ -1,6 +1,6 @@
namespace Volo.Abp.ObjectExtending.Modularity namespace Volo.Abp.ObjectExtending.Modularity
{ {
public class ModuleEntityObjectPropertyExtensionUIFormConfiguration public class ExtensionPropertyUiFormConfiguration
{ {
/// <summary> /// <summary>
/// Default: true. /// Default: true.

2
framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/Modularity/ModuleEntityObjectPropertyExtensionUITableConfiguration.cs → framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/Modularity/ExtensionPropertyUiTableConfiguration.cs

@ -1,6 +1,6 @@
namespace Volo.Abp.ObjectExtending.Modularity namespace Volo.Abp.ObjectExtending.Modularity
{ {
public class ModuleEntityObjectPropertyExtensionUITableConfiguration public class ExtensionPropertyUiTableConfiguration
{ {
/// <summary> /// <summary>
/// Default: true. /// Default: true.

9
framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/Modularity/ModuleEntityObjectExtensionConfigurationDictionary.cs

@ -1,9 +0,0 @@
using System.Collections.Generic;
namespace Volo.Abp.ObjectExtending.Modularity
{
public class ModuleEntityObjectExtensionConfigurationDictionary : Dictionary<string, ModuleEntityObjectExtensionConfiguration>
{
}
}

23
framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/Modularity/ModuleEntityObjectPropertyExtensionApiConfiguration.cs

@ -1,23 +0,0 @@
using JetBrains.Annotations;
namespace Volo.Abp.ObjectExtending.Modularity
{
public class ModuleEntityObjectPropertyExtensionApiConfiguration
{
[NotNull]
public ModuleEntityObjectPropertyExtensionApiGetConfiguration OnGet { get; }
[NotNull]
public ModuleEntityObjectPropertyExtensionApiCreateConfiguration OnCreate { get; }
[NotNull]
public ModuleEntityObjectPropertyExtensionApiUpdateConfiguration OnUpdate { get; }
public ModuleEntityObjectPropertyExtensionApiConfiguration()
{
OnGet = new ModuleEntityObjectPropertyExtensionApiGetConfiguration();
OnCreate = new ModuleEntityObjectPropertyExtensionApiCreateConfiguration();
OnUpdate = new ModuleEntityObjectPropertyExtensionApiUpdateConfiguration();
}
}
}

9
framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/Modularity/ModuleEntityObjectPropertyExtensionConfigurationDictionary.cs

@ -1,9 +0,0 @@
using System.Collections.Generic;
namespace Volo.Abp.ObjectExtending.Modularity
{
public class ModuleEntityObjectPropertyExtensionConfigurationDictionary : Dictionary<string, ModuleEntityObjectPropertyExtensionConfiguration>
{
}
}

23
framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/Modularity/ModuleEntityObjectPropertyExtensionUIConfiguration.cs

@ -1,23 +0,0 @@
using JetBrains.Annotations;
namespace Volo.Abp.ObjectExtending.Modularity
{
public class ModuleEntityObjectPropertyExtensionUIConfiguration
{
[NotNull]
public ModuleEntityObjectPropertyExtensionUITableConfiguration OnTable { get; }
[NotNull]
public ModuleEntityObjectPropertyExtensionUIFormConfiguration OnCreateForm { get; }
[NotNull]
public ModuleEntityObjectPropertyExtensionUIFormConfiguration OnEditForm { get; }
public ModuleEntityObjectPropertyExtensionUIConfiguration()
{
OnTable = new ModuleEntityObjectPropertyExtensionUITableConfiguration();
OnCreateForm = new ModuleEntityObjectPropertyExtensionUIFormConfiguration();
OnEditForm = new ModuleEntityObjectPropertyExtensionUIFormConfiguration();
}
}
}

20
framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/Modularity/ModuleExtensionConfiguration.cs

@ -0,0 +1,20 @@
using System.Collections.Generic;
using JetBrains.Annotations;
namespace Volo.Abp.ObjectExtending.Modularity
{
public class ModuleExtensionConfiguration
{
[NotNull]
public EntityExtensionConfigurationDictionary Entities { get; }
[NotNull]
public Dictionary<string, object> Configuration { get; }
public ModuleExtensionConfiguration()
{
Entities = new EntityExtensionConfigurationDictionary();
Configuration = new Dictionary<string, object>();
}
}
}

9
framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/Modularity/ModuleExtensionConfigurationDictionary.cs

@ -0,0 +1,9 @@
using System.Collections.Generic;
namespace Volo.Abp.ObjectExtending.Modularity
{
public class ModuleExtensionConfigurationDictionary : Dictionary<string, ModuleExtensionConfiguration>
{
}
}

8
framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/Modularity/ModuleObjectExtensionConfigurationDictionaryExtensions.cs → framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/Modularity/ModuleExtensionConfigurationDictionaryExtensions.cs

@ -4,13 +4,13 @@ using JetBrains.Annotations;
namespace Volo.Abp.ObjectExtending.Modularity namespace Volo.Abp.ObjectExtending.Modularity
{ {
public static class ModuleObjectExtensionConfigurationDictionaryExtensions public static class ModuleExtensionConfigurationDictionaryExtensions
{ {
public static ModuleObjectExtensionConfigurationDictionary ConfigureModule<T>( public static ModuleExtensionConfigurationDictionary ConfigureModule<T>(
[NotNull] this ModuleObjectExtensionConfigurationDictionary configurationDictionary, [NotNull] this ModuleExtensionConfigurationDictionary configurationDictionary,
[NotNull] string moduleName, [NotNull] string moduleName,
[NotNull] Action<T> configureAction) [NotNull] Action<T> configureAction)
where T : ModuleObjectExtensionConfiguration, new() where T : ModuleExtensionConfiguration, new()
{ {
Check.NotNull(moduleName, nameof(moduleName)); Check.NotNull(moduleName, nameof(moduleName));
Check.NotNull(configureAction, nameof(configureAction)); Check.NotNull(configureAction, nameof(configureAction));

10
framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/Modularity/ModuleObjectExtensionConfigurationExtensions.cs → framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/Modularity/ModuleExtensionConfigurationExtensions.cs

@ -3,17 +3,17 @@ using System.Collections.Generic;
namespace Volo.Abp.ObjectExtending.Modularity namespace Volo.Abp.ObjectExtending.Modularity
{ {
public static class ModuleObjectExtensionConfigurationExtensions public static class ModuleExtensionConfigurationExtensions
{ {
public static T ConfigureObject<T>( public static T ConfigureEntity<T>(
this T objectConfiguration, this T objectConfiguration,
string objectName, string objectName,
Action<ModuleEntityObjectExtensionConfiguration> configureAction) Action<EntityExtensionConfiguration> configureAction)
where T : ModuleObjectExtensionConfiguration where T : ModuleExtensionConfiguration
{ {
var configuration = objectConfiguration.Entities.GetOrAdd( var configuration = objectConfiguration.Entities.GetOrAdd(
objectName, objectName,
() => new ModuleEntityObjectExtensionConfiguration() () => new EntityExtensionConfiguration()
); );
configureAction(configuration); configureAction(configuration);

44
framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/Modularity/ModuleObjectExtensionConfigurationHelper.cs → framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/Modularity/ModuleExtensionConfigurationHelper.cs

@ -4,14 +4,14 @@ using JetBrains.Annotations;
namespace Volo.Abp.ObjectExtending.Modularity namespace Volo.Abp.ObjectExtending.Modularity
{ {
public static class ModuleObjectExtensionConfigurationHelper public static class ModuleExtensionConfigurationHelper
{ {
public static void ApplyModuleObjectExtensionConfigurationToEntity( public static void ApplyEntityConfigurationToEntity(
string moduleName, string moduleName,
string objectName, string entityName,
Type entityType) Type entityType)
{ {
foreach (var propertyConfig in GetPropertyConfigurations(moduleName, objectName)) foreach (var propertyConfig in GetPropertyConfigurations(moduleName, entityName))
{ {
if (propertyConfig.Entity.IsAvailable && if (propertyConfig.Entity.IsAvailable &&
entityType != null) entityType != null)
@ -21,7 +21,7 @@ namespace Volo.Abp.ObjectExtending.Modularity
} }
} }
public static void ApplyModuleObjectExtensionConfigurationToApi( public static void ApplyEntityConfigurationToApi(
string moduleName, string moduleName,
string objectName, string objectName,
Type[] getApiTypes = null, Type[] getApiTypes = null,
@ -55,13 +55,13 @@ namespace Volo.Abp.ObjectExtending.Modularity
} }
} }
public static void ApplyModuleObjectExtensionConfigurationToUI( public static void ApplyEntityConfigurationToUi(
string moduleName, string moduleName,
string objectName, string entityName,
Type[] createFormTypes = null, Type[] createFormTypes = null,
Type[] editFormTypes = null) Type[] editFormTypes = null)
{ {
foreach (var propertyConfig in GetPropertyConfigurations(moduleName, objectName)) foreach (var propertyConfig in GetPropertyConfigurations(moduleName, entityName))
{ {
if (!propertyConfig.IsAvailableToClients) if (!propertyConfig.IsAvailableToClients)
{ {
@ -82,9 +82,9 @@ namespace Volo.Abp.ObjectExtending.Modularity
} }
} }
public static void ApplyModuleObjectExtensionConfigurations( public static void ApplyEntityConfigurations(
string moduleName, string moduleName,
string objectName, string entityName,
Type entityType = null, Type entityType = null,
Type[] createFormTypes = null, Type[] createFormTypes = null,
Type[] editFormTypes = null, Type[] editFormTypes = null,
@ -94,51 +94,51 @@ namespace Volo.Abp.ObjectExtending.Modularity
{ {
if (entityType != null) if (entityType != null)
{ {
ApplyModuleObjectExtensionConfigurationToEntity( ApplyEntityConfigurationToEntity(
moduleName, moduleName,
objectName, entityName,
entityType entityType
); );
} }
ApplyModuleObjectExtensionConfigurationToApi( ApplyEntityConfigurationToApi(
moduleName, moduleName,
objectName, entityName,
getApiTypes: getApiTypes, getApiTypes: getApiTypes,
createApiTypes: createApiTypes, createApiTypes: createApiTypes,
updateApiTypes: updateApiTypes updateApiTypes: updateApiTypes
); );
ApplyModuleObjectExtensionConfigurationToUI( ApplyEntityConfigurationToUi(
moduleName, moduleName,
objectName, entityName,
createFormTypes: createFormTypes, createFormTypes: createFormTypes,
editFormTypes: editFormTypes editFormTypes: editFormTypes
); );
} }
[NotNull] [NotNull]
public static IEnumerable<ModuleEntityObjectPropertyExtensionConfiguration> GetPropertyConfigurations( public static IEnumerable<ExtensionPropertyConfiguration> GetPropertyConfigurations(
string moduleName, string moduleName,
string objectName) string entityName)
{ {
var moduleConfig = ObjectExtensionManager.Instance.Modules().GetOrDefault(moduleName); var moduleConfig = ObjectExtensionManager.Instance.Modules().GetOrDefault(moduleName);
if (moduleConfig == null) if (moduleConfig == null)
{ {
return Array.Empty<ModuleEntityObjectPropertyExtensionConfiguration>(); return Array.Empty<ExtensionPropertyConfiguration>();
} }
var objectConfig = moduleConfig.Entities.GetOrDefault(objectName); var objectConfig = moduleConfig.Entities.GetOrDefault(entityName);
if (objectConfig == null) if (objectConfig == null)
{ {
return Array.Empty<ModuleEntityObjectPropertyExtensionConfiguration>(); return Array.Empty<ExtensionPropertyConfiguration>();
} }
return objectConfig.GetProperties(); return objectConfig.GetProperties();
} }
public static void ApplyPropertyConfigurationToTypes( public static void ApplyPropertyConfigurationToTypes(
ModuleEntityObjectPropertyExtensionConfiguration propertyConfig, ExtensionPropertyConfiguration propertyConfig,
Type[] types) Type[] types)
{ {
ObjectExtensionManager.Instance ObjectExtensionManager.Instance

12
framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/Modularity/ModuleObjectExtensionConfiguration.cs

@ -1,12 +0,0 @@
namespace Volo.Abp.ObjectExtending.Modularity
{
public class ModuleObjectExtensionConfiguration
{
public ModuleEntityObjectExtensionConfigurationDictionary Entities { get; set; }
public ModuleObjectExtensionConfiguration()
{
Entities = new ModuleEntityObjectExtensionConfigurationDictionary();
}
}
}

9
framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/Modularity/ModuleObjectExtensionConfigurationDictionary.cs

@ -1,9 +0,0 @@
using System.Collections.Generic;
namespace Volo.Abp.ObjectExtending.Modularity
{
public class ModuleObjectExtensionConfigurationDictionary : Dictionary<string, ModuleObjectExtensionConfiguration>
{
}
}

6
framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/ModuleObjectExtensionManagerExtensions.cs

@ -8,15 +8,15 @@ namespace Volo.Abp.ObjectExtending
{ {
private const string ObjectExtensionManagerConfigurationKey = "_Modules"; private const string ObjectExtensionManagerConfigurationKey = "_Modules";
public static ModuleObjectExtensionConfigurationDictionary Modules( public static ModuleExtensionConfigurationDictionary Modules(
[NotNull]this ObjectExtensionManager objectExtensionManager) [NotNull]this ObjectExtensionManager objectExtensionManager)
{ {
Check.NotNull(objectExtensionManager, nameof(objectExtensionManager)); Check.NotNull(objectExtensionManager, nameof(objectExtensionManager));
return objectExtensionManager.Configuration.GetOrAdd( return objectExtensionManager.Configuration.GetOrAdd(
ObjectExtensionManagerConfigurationKey, ObjectExtensionManagerConfigurationKey,
() => new ModuleObjectExtensionConfigurationDictionary() () => new ModuleExtensionConfigurationDictionary()
) as ModuleObjectExtensionConfigurationDictionary; ) as ModuleExtensionConfigurationDictionary;
} }
} }
} }

9
modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/ObjectExtending/IdentityModuleExtensionConfiguration.cs

@ -0,0 +1,9 @@
using Volo.Abp.ObjectExtending.Modularity;
namespace Volo.Abp.ObjectExtending
{
public class IdentityModuleExtensionConfiguration : ModuleExtensionConfiguration
{
}
}

18
modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/ObjectExtending/IdentityModuleExtensionConfigurationExtensions.cs

@ -0,0 +1,18 @@
using System;
using Volo.Abp.ObjectExtending.Modularity;
namespace Volo.Abp.ObjectExtending
{
public static class IdentityModuleExtensionConfigurationExtensions
{
public static IdentityModuleExtensionConfiguration ConfigureUser(
this IdentityModuleExtensionConfiguration configurations,
Action<EntityExtensionConfiguration> configureAction)
{
return configurations.ConfigureEntity(
"User",
configureAction
);
}
}
}

9
modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/ObjectExtending/IdentityModuleObjectExtensionConfiguration.cs

@ -1,9 +0,0 @@
using Volo.Abp.ObjectExtending.Modularity;
namespace Volo.Abp.ObjectExtending
{
public class IdentityModuleObjectExtensionConfiguration : ModuleObjectExtensionConfiguration
{
}
}

18
modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/ObjectExtending/IdentityModuleObjectExtensionConfigurationExtensions.cs

@ -1,18 +0,0 @@
using System;
using Volo.Abp.ObjectExtending.Modularity;
namespace Volo.Abp.ObjectExtending
{
public static class IdentityModuleObjectExtensionConfigurationExtensions
{
public static IdentityModuleObjectExtensionConfiguration ConfigureUser(
this IdentityModuleObjectExtensionConfiguration configurations,
Action<ModuleEntityObjectExtensionConfiguration> configureAction)
{
return configurations.ConfigureObject(
"User",
configureAction
);
}
}
}

6
modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/ObjectExtending/IdentityModuleObjectExtensionConfigurationsExtensions.cs

@ -5,9 +5,9 @@ namespace Volo.Abp.ObjectExtending
{ {
public static class IdentityModuleObjectExtensionConfigurationsExtensions public static class IdentityModuleObjectExtensionConfigurationsExtensions
{ {
public static ModuleObjectExtensionConfigurationDictionary ConfigureIdentity( public static ModuleExtensionConfigurationDictionary ConfigureIdentity(
this ModuleObjectExtensionConfigurationDictionary modules, this ModuleExtensionConfigurationDictionary modules,
Action<IdentityModuleObjectExtensionConfiguration> configureAction) Action<IdentityModuleExtensionConfiguration> configureAction)
{ {
return modules.ConfigureModule( return modules.ConfigureModule(
"Identity", "Identity",

2
modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/AbpIdentityDomainModule.cs

@ -48,7 +48,7 @@ namespace Volo.Abp.Identity
public override void PostConfigureServices(ServiceConfigurationContext context) public override void PostConfigureServices(ServiceConfigurationContext context)
{ {
ModuleObjectExtensionConfigurationHelper.ApplyModuleObjectExtensionConfigurationToEntity( ModuleExtensionConfigurationHelper.ApplyEntityConfigurationToEntity(
"Identity", "Identity",
"User", "User",
typeof(IdentityUser) typeof(IdentityUser)

Loading…
Cancel
Save