Skip to content

Commit f10c20f

Browse files
committed
NetCore - Better dependency behavior and async templates
1 parent 2c2cfa0 commit f10c20f

28 files changed

+499
-216
lines changed

Build/CommonAssemblyInfo.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
// Minor Version
1313
// Build Number
1414
// Revision
15-
[assembly: AssemblyVersion("3.7.9")]
16-
[assembly: AssemblyFileVersion("3.7.9")]
15+
[assembly: AssemblyVersion("3.8.0")]
16+
[assembly: AssemblyFileVersion("3.8.0")]
1717
// Uncomment the informational version to create a pre-release package
1818
//[assembly: AssemblyInformationalVersion("3.7.9-beta")]

Griddly.Mvc/EmptyGridMessageTemplateParams.cs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,14 @@
33
//TODO: Put GriddlySettings into GriddlyContext so that it doesn't need to be passed in separately
44
public class EmptyGridMessageTemplateParams
55
{
6+
public EmptyGridMessageTemplateParams(GriddlyResultPage resultPage, GriddlySettings settings, IHtmlHelper html)
7+
{
8+
Html = html;
9+
ResultPage = resultPage;
10+
Settings = settings;
11+
}
12+
13+
public IHtmlHelper Html { get; set; }
614
public GriddlyResultPage ResultPage { get; set; }
715
public GriddlySettings Settings { get; set; }
816
}

Griddly.Mvc/Griddly.Mvc.csproj

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,5 +33,15 @@
3333
<Link>Properties\CommonAssemblyInfo.cs</Link>
3434
</Compile>
3535
</ItemGroup>
36-
36+
37+
<ItemGroup Condition="$(TargetFramework.StartsWith('net4'))">
38+
<Compile Remove="NetCore\**"/>
39+
<None Include="NetCore\**"/>
40+
</ItemGroup>
41+
42+
<ItemGroup Condition="$(TargetFramework.StartsWith('netcoreapp'))">
43+
<Compile Remove="NetFramework\**"/>
44+
<None Include="NetFramework\**"/>
45+
</ItemGroup>
46+
3747
</Project>

Griddly.Mvc/GriddlyColumn.cs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
using System.Web.WebPages;
55
#else
66
using Griddly.Mvc.InternalExtensions;
7+
using Microsoft.Extensions.DependencyInjection;
78
#endif
89

910
namespace Griddly.Mvc;
@@ -83,8 +84,12 @@ public virtual HtmlString RenderValue(object value, IHtmlHelper html, bool encod
8384
if (value == null)
8485
return null;
8586

87+
#if NETCOREAPP
88+
value = html.GetGriddlyConfig().Filter(this, value, html.ViewContext.HttpContext);
89+
#else
8690
if (GriddlySettings.ColumnValueFilter != null)
8791
value = GriddlySettings.ColumnValueFilter.Filter(this, value, html.ViewContext.HttpContext);
92+
#endif
8893

8994
if (Format == null)
9095
{
@@ -237,8 +242,12 @@ public override HtmlString RenderUnderlyingValue(object row, IHtmlHelper html)
237242
throw new InvalidOperationException("Error rendering underlying value or column \"" + Caption + "\"", ex);
238243
}
239244

245+
#if NETFRAMEWORK
240246
if (GriddlySettings.ColumnValueFilter != null)
241247
value = GriddlySettings.ColumnValueFilter.Filter(this, value, html.ViewContext.HttpContext);
248+
#else
249+
value = html.GetGriddlyConfig().Filter(this, value, html.ViewContext.HttpContext);
250+
#endif
242251

243252
if (value == null)
244253
return null;
@@ -265,8 +274,12 @@ public override object RenderCellValue(object row, HttpContextBase httpContext,
265274
throw new InvalidOperationException("Error rendering column \"" + Caption + "\"", ex);
266275
}
267276

277+
#if NETFRAMEWORK
268278
if (GriddlySettings.ColumnValueFilter != null)
269279
value = GriddlySettings.ColumnValueFilter.Filter(this, value, httpContext);
280+
#else
281+
value = httpContext.GetGriddlyConfig().Filter(this, value, httpContext);
282+
#endif
270283

271284
// TODO: test if we need to match separately -- maybe we get a real string here and could strip?
272285
#if NETCOREAPP

Griddly.Mvc/GriddlyCookieFilterValueProvider.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ public Task CreateValueProviderAsync(ValueProviderFactoryContext vpfc)
109109
{
110110
return Task.Factory.StartNew(() =>
111111
{
112-
if (vpfc.ActionContext.HttpContext.IsChildAction() && _canProvide.Invoke(vpfc.ActionContext) && !GriddlySettings.IsCookiesDisabled(vpfc.ActionContext.HttpContext))
112+
if (vpfc.ActionContext.HttpContext.IsChildAction() && _canProvide.Invoke(vpfc.ActionContext) && !vpfc.ActionContext.GetGriddlyConfig().IsCookiesDisabled())
113113
{
114114
var context = vpfc.ActionContext.GetOrCreateGriddlyContext();
115115
var cookie = vpfc.ActionContext.HttpContext.Request.Cookies[context.CookieName];

Griddly.Mvc/GriddlyFilterBarSettings.cs

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,19 @@
1-
namespace Griddly.Mvc;
1+
using System.Threading.Tasks;
2+
3+
namespace Griddly.Mvc;
24

35
public class GriddlyFilterBarSettings : IGriddlyFilterSettings
46
{
57
public List<GriddlyFilter> Filters { get; set; } = new List<GriddlyFilter>();
68

79
#if NETFRAMEWORK
810
public Func<object, object> FilterButtonTemplate { get; set; }
9-
public Func<IGriddlyFilterSettings, object> FilterModalHeaderTemplate { get; set; }
10-
public Func<IGriddlyFilterSettings, object> FilterModalFooterTemplate { get; set; }
11+
public Func<IGriddlyFilterSettings, object> FilterModalHeaderTemplate { get; set; }
12+
public Func<IGriddlyFilterSettings, object> FilterModalFooterTemplate { get; set; }
1113
#else
12-
public Func<object, IHtmlContent> FilterButtonTemplate { get; set; }
13-
public Func<IGriddlyFilterSettings, IHtmlContent> FilterModalHeaderTemplate { get; set; }
14-
public Func<IGriddlyFilterSettings, IHtmlContent> FilterModalFooterTemplate { get; set; }
14+
public Func<IHtmlHelper, Task<IHtmlContent>> FilterButtonTemplate { get; set; }
15+
public Func<IGriddlyFilterSettings, IHtmlHelper, Task<IHtmlContent>> FilterModalHeaderTemplate { get; set; }
16+
public Func<IGriddlyFilterSettings, IHtmlHelper, Task<IHtmlContent>> FilterModalFooterTemplate { get; set; }
1517
#endif
1618

1719

Griddly.Mvc/GriddlyParameterAttribute.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -200,7 +200,11 @@ public override void
200200

201201
public static void AddCookieDataIfNeeded(GriddlyContext context, HttpContextBase httpContext)
202202
{
203+
#if NETFRAMEWORK
203204
if (!GriddlySettings.IsCookiesDisabled(httpContext))
205+
#else
206+
if (!httpContext.GetGriddlyConfig().IsCookiesDisabled())
207+
#endif
204208
{
205209
var cookie = (COOKIE)httpContext.Items["_griddlyCookie"];
206210
var data = (GriddlyFilterCookieData)httpContext.Items["_griddlyCookieData"];

Griddly.Mvc/GriddlyResult.cs

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -106,16 +106,14 @@ public override async Task ExecuteResultAsync(ActionContext context)
106106
#if NETFRAMEWORK
107107
if (context.IsChildAction)
108108
{
109-
//settings = GriddlySettingsResult.GetSettings(context, ViewName); - this looks redundant to me.
109+
GriddlySettings.OnGriddlyResultExecuting?.Invoke(settings, context);
110+
GriddlySettings.GlobalGriddlyResultExecuting?.Invoke(new GriddlyResultExecutingArgs(this, settings, context));
110111
#else
111112
if (context.HttpContext.IsChildAction())
112113
{
113-
//settings = await GriddlySettingsResult.GetSettings(context, ViewName);
114+
await context.GetGriddlyConfig().OnGriddlyResultExecuting(new GriddlyResultExecutingArgs(this, settings, context));
114115
#endif
115116

116-
GriddlySettings.OnGriddlyResultExecuting?.Invoke(settings, context);
117-
GriddlySettings.GlobalGriddlyResultExecuting?.Invoke(new GriddlyResultExecutingArgs(this, settings, context));
118-
119117
// TODO: should we always pull sort fields?
120118
if (griddlyContext.SortFields?.Any() != true)
121119
griddlyContext.SortFields = settings.DefaultSort;
@@ -131,8 +129,12 @@ public override async Task ExecuteResultAsync(ActionContext context)
131129

132130
if (griddlyContext.ExportFormat == null)
133131
{
132+
#if NETFRAMEWORK
134133
GriddlySettings.OnGriddlyPageExecuting?.Invoke(settings, griddlyContext, context);
135134
GriddlySettings.GlobalGriddlyPageExecuting?.Invoke(new GriddlyPageExecutingArgs(this, settings, griddlyContext, context));
135+
#else
136+
await context.GetGriddlyConfig().OnGriddlyPageExecuting(new GriddlyPageExecutingArgs(this, settings, griddlyContext, context));
137+
#endif
136138

137139
IList<T> page = GetPage(griddlyContext.PageNumber, griddlyContext.PageSize, griddlyContext.SortFields);
138140

@@ -213,17 +215,25 @@ public override async Task ExecuteResultAsync(ActionContext context)
213215

214216
if (griddlyContext.ExportFormat == GriddlyExportFormat.Custom)
215217
{
218+
#if NETFRAMEWORK
216219
if (GriddlySettings.GlobalHandleCustomExport != null)
217220
result = GriddlySettings.GlobalHandleCustomExport(new HandleCustomExportArgs(this, items, context));
218221
else
219222
result = GriddlySettings.HandleCustomExport(this, items, context);
223+
#else
224+
result = await context.GetGriddlyConfig().HandleCustomExport(new HandleCustomExportArgs(this, items, context));
225+
#endif
220226
}
221227
else
222228
{
223229
IEnumerable<T> records = GetAll(griddlyContext.SortFields);
224230

231+
#if NETFRAMEWORK
225232
if (GriddlySettings.OnGriddlyExportExecuting != null)
226233
records = GriddlySettings.OnGriddlyExportExecuting(records, settings).Cast<T>();
234+
#else
235+
records = (await context.GetGriddlyConfig().OnGriddlyExportExecuting(records, settings)).Cast<T>();
236+
#endif
227237

228238
if (griddlyContext.ExportFormat == GriddlyExportFormat.Xlsx)
229239
{

0 commit comments

Comments
 (0)