mirror of
https://github.com/OrchardCMS/Orchard.git
synced 2026-02-09 09:16:41 +08:00
Displaying form submission time in local timezone.
This commit is contained in:
@@ -18,7 +18,7 @@ using Orchard.Layouts.Framework.Serialization;
|
|||||||
using Orchard.Layouts.Helpers;
|
using Orchard.Layouts.Helpers;
|
||||||
using Orchard.Layouts.Models;
|
using Orchard.Layouts.Models;
|
||||||
using Orchard.Layouts.Services;
|
using Orchard.Layouts.Services;
|
||||||
using Orchard.Mvc;
|
using Orchard.Localization.Services;
|
||||||
using Orchard.Services;
|
using Orchard.Services;
|
||||||
|
|
||||||
namespace Orchard.DynamicForms.Services {
|
namespace Orchard.DynamicForms.Services {
|
||||||
@@ -30,32 +30,37 @@ namespace Orchard.DynamicForms.Services {
|
|||||||
private readonly IContentManager _contentManager;
|
private readonly IContentManager _contentManager;
|
||||||
private readonly IContentDefinitionManager _contentDefinitionManager;
|
private readonly IContentDefinitionManager _contentDefinitionManager;
|
||||||
private readonly IBindingManager _bindingManager;
|
private readonly IBindingManager _bindingManager;
|
||||||
private readonly IHttpContextAccessor _httpContextAccessor;
|
|
||||||
private readonly IDynamicFormEventHandler _formEventHandler;
|
private readonly IDynamicFormEventHandler _formEventHandler;
|
||||||
private readonly Lazy<IEnumerable<IElementValidator>> _validators;
|
private readonly Lazy<IEnumerable<IElementValidator>> _validators;
|
||||||
|
private readonly IDateLocalizationServices _dateLocalizationServices;
|
||||||
|
private readonly IOrchardServices _services;
|
||||||
|
private readonly ICultureAccessor _cultureAccessor;
|
||||||
|
|
||||||
public FormService(
|
public FormService(
|
||||||
ILayoutSerializer serializer,
|
ILayoutSerializer serializer,
|
||||||
IClock clock,
|
IClock clock,
|
||||||
IRepository<Submission> submissionRepository,
|
IRepository<Submission> submissionRepository,
|
||||||
IFormElementEventHandler elementHandlers,
|
IFormElementEventHandler elementHandlers,
|
||||||
IContentManager contentManager,
|
|
||||||
IContentDefinitionManager contentDefinitionManager,
|
IContentDefinitionManager contentDefinitionManager,
|
||||||
IBindingManager bindingManager,
|
IBindingManager bindingManager,
|
||||||
IHttpContextAccessor httpContextAccessor,
|
|
||||||
IDynamicFormEventHandler formEventHandler,
|
IDynamicFormEventHandler formEventHandler,
|
||||||
Lazy<IEnumerable<IElementValidator>> validators) {
|
Lazy<IEnumerable<IElementValidator>> validators,
|
||||||
|
IDateLocalizationServices dateLocalizationServices,
|
||||||
|
IOrchardServices services,
|
||||||
|
ICultureAccessor cultureAccessor) {
|
||||||
|
|
||||||
_serializer = serializer;
|
_serializer = serializer;
|
||||||
_clock = clock;
|
_clock = clock;
|
||||||
_submissionRepository = submissionRepository;
|
_submissionRepository = submissionRepository;
|
||||||
_elementHandlers = elementHandlers;
|
_elementHandlers = elementHandlers;
|
||||||
_contentManager = contentManager;
|
_contentManager = services.ContentManager;
|
||||||
_contentDefinitionManager = contentDefinitionManager;
|
_contentDefinitionManager = contentDefinitionManager;
|
||||||
_bindingManager = bindingManager;
|
_bindingManager = bindingManager;
|
||||||
_httpContextAccessor = httpContextAccessor;
|
|
||||||
_formEventHandler = formEventHandler;
|
_formEventHandler = formEventHandler;
|
||||||
_validators = validators;
|
_validators = validators;
|
||||||
|
_dateLocalizationServices = dateLocalizationServices;
|
||||||
|
_services = services;
|
||||||
|
_cultureAccessor = cultureAccessor;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Form FindForm(LayoutPart layoutPart, string formName = null) {
|
public Form FindForm(LayoutPart layoutPart, string formName = null) {
|
||||||
@@ -173,7 +178,7 @@ namespace Orchard.DynamicForms.Services {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Collect any remaining form values not handled by any specific element.
|
// Collect any remaining form values not handled by any specific element.
|
||||||
var requestForm = _httpContextAccessor.Current().Request.Form;
|
var requestForm = _services.WorkContext.HttpContext.Request.Form;
|
||||||
var blackList = new[] {"__RequestVerificationToken", "formName", "contentId"};
|
var blackList = new[] {"__RequestVerificationToken", "formName", "contentId"};
|
||||||
foreach (var key in
|
foreach (var key in
|
||||||
from string key in requestForm
|
from string key in requestForm
|
||||||
@@ -200,7 +205,7 @@ namespace Orchard.DynamicForms.Services {
|
|||||||
}
|
}
|
||||||
|
|
||||||
dataTable.Columns.Add("Id");
|
dataTable.Columns.Add("Id");
|
||||||
dataTable.Columns.Add("CreatedUtc", typeof (DateTime));
|
dataTable.Columns.Add("Created");
|
||||||
foreach (var columnName in columnNames) {
|
foreach (var columnName in columnNames) {
|
||||||
dataTable.Columns.Add(columnName);
|
dataTable.Columns.Add(columnName);
|
||||||
}
|
}
|
||||||
@@ -209,7 +214,7 @@ namespace Orchard.DynamicForms.Services {
|
|||||||
var dataRow = dataTable.NewRow();
|
var dataRow = dataTable.NewRow();
|
||||||
|
|
||||||
dataRow["Id"] = record.Item1.Id;
|
dataRow["Id"] = record.Item1.Id;
|
||||||
dataRow["CreatedUtc"] = record.Item1.CreatedUtc;
|
dataRow["Created"] = _dateLocalizationServices.ConvertToSiteTimeZone(record.Item1.CreatedUtc).ToString(_cultureAccessor.CurrentCulture);
|
||||||
foreach (var columnName in columnNames) {
|
foreach (var columnName in columnNames) {
|
||||||
var value = record.Item2[columnName];
|
var value = record.Item2[columnName];
|
||||||
dataRow[columnName] = value;
|
dataRow[columnName] = value;
|
||||||
|
|||||||
@@ -1,14 +1,18 @@
|
|||||||
|
using System;
|
||||||
using System.Globalization;
|
using System.Globalization;
|
||||||
|
|
||||||
namespace Orchard.Layouts.Services {
|
namespace Orchard.Layouts.Services {
|
||||||
public class CultureAccessor : ICultureAccessor {
|
public class CultureAccessor : ICultureAccessor {
|
||||||
private readonly IWorkContextAccessor _wca;
|
private readonly IWorkContextAccessor _wca;
|
||||||
|
private readonly Lazy<CultureInfo> _currentCulture;
|
||||||
|
|
||||||
public CultureAccessor(IWorkContextAccessor wca) {
|
public CultureAccessor(IWorkContextAccessor wca) {
|
||||||
_wca = wca;
|
_wca = wca;
|
||||||
|
_currentCulture = new Lazy<CultureInfo>(() => new CultureInfo(_wca.GetContext().CurrentCulture));
|
||||||
}
|
}
|
||||||
|
|
||||||
public CultureInfo CurrentCulture {
|
public CultureInfo CurrentCulture {
|
||||||
get { return new CultureInfo(_wca.GetContext().CurrentCulture); }
|
get { return _currentCulture.Value; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user