Browse Source

Merge branch 'master' of https://github.com/volosoft/abp

pull/705/head
Alper Ebicoglu 8 years ago
parent
commit
4751778b23
  1. 47
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpRadioInputTagHelperService.cs
  2. 44
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpSelectTagHelperService.cs
  3. 6
      modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp.HangFire/Volo.Abp.BackgroundJobs.DemoApp.HangFire.csproj
  4. 37
      modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp.Shared/ConfigurationHelper.cs
  5. 13
      modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp/DemoAppModule.cs
  6. 6
      modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp/Volo.Abp.BackgroundJobs.DemoApp.csproj

47
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpRadioInputTagHelperService.cs

@ -26,6 +26,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form
public override void Process(TagHelperContext context, TagHelperOutput output)
{
var selectItems = GetSelectItems(context,output);
SetSelectedValue(context, output, selectItems);
var order = GetInputOrder(TagHelper.AspFor.ModelExplorer);
@ -71,21 +72,25 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form
protected virtual List<SelectListItem> GetSelectItems(TagHelperContext context, TagHelperOutput output)
{
var selectItems = TagHelper.AspItems?.ToList();
if (TagHelper.AspItems == null &&
!GetSelectItemsIfProvidedByEnum(context, output, TagHelper.AspFor.ModelExplorer, out selectItems) &&
!GetSelectItemsIfProvidedFromAttribute(context, output, TagHelper.AspFor.ModelExplorer, out selectItems))
if (TagHelper.AspItems != null)
{
return TagHelper.AspItems.ToList();
}
else if (TagHelper.AspFor.ModelExplorer.Metadata.IsEnum)
{
return GetSelectItemsFromEnum(context, output, TagHelper.AspFor.ModelExplorer);
}
else if (TagHelper.AspFor.ModelExplorer.Metadata.IsEnum)
{
return GetSelectItemsFromAttribute(context, output, TagHelper.AspFor.ModelExplorer);
}
else
{
throw new Exception("No items provided for select attribute.");
}
SetSelectedValue(context, output, selectItems);
return selectItems;
}
protected virtual bool GetSelectItemsIfProvidedByEnum(TagHelperContext context, TagHelperOutput output, ModelExplorer explorer, out List<SelectListItem> selectItems)
protected virtual List<SelectListItem> GetSelectItemsFromEnum(TagHelperContext context, TagHelperOutput output, ModelExplorer explorer)
{
IStringLocalizer localizer = null;
var resourceType = _options.AssemblyResources.GetOrDefault(explorer.Container.ModelType.Assembly);
@ -95,10 +100,10 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form
localizer = _stringLocalizerFactory.Create(resourceType);
}
selectItems = explorer.Metadata.IsEnum ? explorer.ModelType.GetTypeInfo().GetMembers(BindingFlags.Public | BindingFlags.Static)
var selectItems = explorer.Metadata.IsEnum ? explorer.ModelType.GetTypeInfo().GetMembers(BindingFlags.Public | BindingFlags.Static)
.Select((t, i) => new SelectListItem { Value = i.ToString(), Text = GetLocalizedPropertyName(localizer, explorer.ModelType, t.Name) }).ToList() : null;
return selectItems != null;
return selectItems;
}
protected virtual string GetLocalizedPropertyName(IStringLocalizer localizer, Type enumType, string propertyName)
@ -113,11 +118,23 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form
return !localizedString.ResourceNotFound ? localizedString.Value : localizer[propertyName].Value;
}
protected virtual bool GetSelectItemsIfProvidedFromAttribute(TagHelperContext context, TagHelperOutput output, ModelExplorer explorer, out List<SelectListItem> selectItems)
protected virtual List<SelectListItem> GetSelectItemsFromAttribute(TagHelperContext context, TagHelperOutput output, ModelExplorer explorer)
{
selectItems = GetAttribute<SelectItems>(explorer)?.GetItems(explorer)?.ToList();
var selectItemsAttribute = GetAttribute<SelectItems>(explorer);
if (selectItemsAttribute == null)
{
return null;
}
return selectItems != null;
var selectItems = selectItemsAttribute.GetItems(explorer)?.ToList();
if (selectItems == null)
{
return new List<SelectListItem>();
}
return selectItems;
}
protected virtual void SetSelectedValue(TagHelperContext context, TagHelperOutput output, List<SelectListItem> selectItems)

44
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpSelectTagHelperService.cs

@ -100,16 +100,22 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form
protected virtual List<SelectListItem> GetSelectItems(TagHelperContext context, TagHelperOutput output)
{
var selectItems = TagHelper.AspItems?.ToList();
if (TagHelper.AspItems == null &&
!GetSelectItemsIfProvidedByEnum(context, output, TagHelper.AspFor.ModelExplorer, out selectItems) &&
!GetSelectItemsIfProvidedFromAttribute(context, output, TagHelper.AspFor.ModelExplorer, out selectItems))
if (TagHelper.AspItems != null)
{
return TagHelper.AspItems.ToList();
}
else if (TagHelper.AspFor.ModelExplorer.Metadata.IsEnum)
{
return GetSelectItemsFromEnum(context, output, TagHelper.AspFor.ModelExplorer);
}
else if (TagHelper.AspFor.ModelExplorer.Metadata.IsEnum)
{
return GetSelectItemsFromAttribute(context, output, TagHelper.AspFor.ModelExplorer);
}
else
{
throw new Exception("No items provided for select attribute.");
}
return selectItems;
}
protected virtual string GetLabelAsHtml(TagHelperContext context, TagHelperOutput output, TagHelperOutput selectTag)
@ -198,14 +204,14 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form
return localizer;
}
protected virtual bool GetSelectItemsIfProvidedByEnum(TagHelperContext context, TagHelperOutput output, ModelExplorer explorer, out List<SelectListItem> selectItems)
protected virtual List<SelectListItem> GetSelectItemsFromEnum(TagHelperContext context, TagHelperOutput output, ModelExplorer explorer)
{
var localizer = GetLocalizer();
selectItems = explorer.Metadata.IsEnum ? explorer.ModelType.GetTypeInfo().GetMembers(BindingFlags.Public | BindingFlags.Static)
var selectItems = explorer.Metadata.IsEnum ? explorer.ModelType.GetTypeInfo().GetMembers(BindingFlags.Public | BindingFlags.Static)
.Select((t, i) => new SelectListItem { Value = i.ToString(), Text = GetLocalizedPropertyName(localizer, explorer.ModelType, t.Name) }).ToList() : null;
return selectItems != null;
return selectItems;
}
protected virtual string GetLocalizedPropertyName(IStringLocalizer localizer, Type enumType, string propertyName)
@ -220,11 +226,23 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form
return !localizedString.ResourceNotFound ? localizedString.Value : localizer[propertyName].Value;
}
protected virtual bool GetSelectItemsIfProvidedFromAttribute(TagHelperContext context, TagHelperOutput output, ModelExplorer explorer, out List<SelectListItem> selectItems)
protected virtual List<SelectListItem> GetSelectItemsFromAttribute(TagHelperContext context, TagHelperOutput output, ModelExplorer explorer)
{
selectItems = GetAttribute<SelectItems>(explorer)?.GetItems(explorer)?.ToList();
var selectItemsAttribute = GetAttribute<SelectItems>(explorer);
if (selectItemsAttribute == null)
{
return null;
}
var selectItems = selectItemsAttribute.GetItems(explorer)?.ToList();
return selectItems != null;
if (selectItems == null)
{
return new List<SelectListItem>();
}
return selectItems;
}
protected virtual string GetLabelAsHtmlUsingTagHelper(TagHelperContext context, TagHelperOutput output)

6
modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp.HangFire/Volo.Abp.BackgroundJobs.DemoApp.HangFire.csproj

@ -11,5 +11,11 @@
<ProjectReference Include="..\..\..\..\framework\src\Volo.Abp.BackgroundJobs.HangFire\Volo.Abp.BackgroundJobs.HangFire.csproj" />
<ProjectReference Include="..\Volo.Abp.BackgroundJobs.DemoApp.Shared\Volo.Abp.BackgroundJobs.DemoApp.Shared.csproj" />
</ItemGroup>
<ItemGroup>
<None Update="appsettings.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
</ItemGroup>
</Project>

37
modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp.Shared/ConfigurationHelper.cs

@ -1,37 +0,0 @@
using System.IO;
using Microsoft.Extensions.Configuration;
namespace Volo.Abp.BackgroundJobs.DemoApp.Shared
{
public static class ConfigurationHelper
{
public static IConfigurationRoot BuildConfiguration()
{
const string fileName = "appsettings.json";
var directory = Directory.GetCurrentDirectory();
while (!File.Exists(Path.Combine(directory, fileName)))
{
var parentDirectory = new DirectoryInfo(directory).Parent;
if (parentDirectory == null)
{
break;
}
directory = parentDirectory.FullName;
}
if (File.Exists(Path.Combine(directory, fileName)))
{
var builder = new ConfigurationBuilder()
.SetBasePath(directory)
.AddJsonFile(fileName, optional: false);
return builder.Build();
}
return null;
}
}
}

13
modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp/DemoAppModule.cs

@ -1,10 +1,8 @@
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using Volo.Abp.Autofac;
using Volo.Abp.BackgroundJobs.DemoApp.Shared;
using Volo.Abp.BackgroundJobs.EntityFrameworkCore;
using Volo.Abp.Data;
using Volo.Abp.EntityFrameworkCore;
using Volo.Abp.EntityFrameworkCore.SqlServer;
using Volo.Abp.Modularity;
@ -21,15 +19,6 @@ namespace Volo.Abp.BackgroundJobs.DemoApp
{
public override void ConfigureServices(ServiceConfigurationContext context)
{
var configuration = ConfigurationHelper.BuildConfiguration();
context.Services.SetConfiguration(configuration);
Configure<DbConnectionOptions>(options =>
{
options.ConnectionStrings.Default = configuration.GetConnectionString("Default");
});
Configure<AbpDbContextOptions>(options =>
{
options.Configure(opts =>

6
modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp/Volo.Abp.BackgroundJobs.DemoApp.csproj

@ -14,4 +14,10 @@
<ProjectReference Include="..\Volo.Abp.BackgroundJobs.DemoApp.Shared\Volo.Abp.BackgroundJobs.DemoApp.Shared.csproj" />
</ItemGroup>
<ItemGroup>
<None Update="appsettings.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
</ItemGroup>
</Project>

Loading…
Cancel
Save