diff --git a/src/Orchard.Web/Modules/Orchard.DynamicForms/Services/FormService.cs b/src/Orchard.Web/Modules/Orchard.DynamicForms/Services/FormService.cs index 24967bc9a..9ebe00628 100644 --- a/src/Orchard.Web/Modules/Orchard.DynamicForms/Services/FormService.cs +++ b/src/Orchard.Web/Modules/Orchard.DynamicForms/Services/FormService.cs @@ -18,7 +18,7 @@ using Orchard.Layouts.Framework.Serialization; using Orchard.Layouts.Helpers; using Orchard.Layouts.Models; using Orchard.Layouts.Services; -using Orchard.Mvc; +using Orchard.Localization.Services; using Orchard.Services; namespace Orchard.DynamicForms.Services { @@ -30,32 +30,37 @@ namespace Orchard.DynamicForms.Services { private readonly IContentManager _contentManager; private readonly IContentDefinitionManager _contentDefinitionManager; private readonly IBindingManager _bindingManager; - private readonly IHttpContextAccessor _httpContextAccessor; private readonly IDynamicFormEventHandler _formEventHandler; private readonly Lazy> _validators; + private readonly IDateLocalizationServices _dateLocalizationServices; + private readonly IOrchardServices _services; + private readonly ICultureAccessor _cultureAccessor; public FormService( ILayoutSerializer serializer, IClock clock, IRepository submissionRepository, IFormElementEventHandler elementHandlers, - IContentManager contentManager, IContentDefinitionManager contentDefinitionManager, IBindingManager bindingManager, - IHttpContextAccessor httpContextAccessor, IDynamicFormEventHandler formEventHandler, - Lazy> validators) { + Lazy> validators, + IDateLocalizationServices dateLocalizationServices, + IOrchardServices services, + ICultureAccessor cultureAccessor) { _serializer = serializer; _clock = clock; _submissionRepository = submissionRepository; _elementHandlers = elementHandlers; - _contentManager = contentManager; + _contentManager = services.ContentManager; _contentDefinitionManager = contentDefinitionManager; _bindingManager = bindingManager; - _httpContextAccessor = httpContextAccessor; _formEventHandler = formEventHandler; _validators = validators; + _dateLocalizationServices = dateLocalizationServices; + _services = services; + _cultureAccessor = cultureAccessor; } 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. - var requestForm = _httpContextAccessor.Current().Request.Form; + var requestForm = _services.WorkContext.HttpContext.Request.Form; var blackList = new[] {"__RequestVerificationToken", "formName", "contentId"}; foreach (var key in from string key in requestForm @@ -200,7 +205,7 @@ namespace Orchard.DynamicForms.Services { } dataTable.Columns.Add("Id"); - dataTable.Columns.Add("CreatedUtc", typeof (DateTime)); + dataTable.Columns.Add("Created"); foreach (var columnName in columnNames) { dataTable.Columns.Add(columnName); } @@ -209,7 +214,7 @@ namespace Orchard.DynamicForms.Services { var dataRow = dataTable.NewRow(); 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) { var value = record.Item2[columnName]; dataRow[columnName] = value; diff --git a/src/Orchard.Web/Modules/Orchard.Layouts/Services/CultureAccessor.cs b/src/Orchard.Web/Modules/Orchard.Layouts/Services/CultureAccessor.cs index 198cafe3f..901266b28 100644 --- a/src/Orchard.Web/Modules/Orchard.Layouts/Services/CultureAccessor.cs +++ b/src/Orchard.Web/Modules/Orchard.Layouts/Services/CultureAccessor.cs @@ -1,14 +1,18 @@ +using System; using System.Globalization; namespace Orchard.Layouts.Services { public class CultureAccessor : ICultureAccessor { private readonly IWorkContextAccessor _wca; + private readonly Lazy _currentCulture; + public CultureAccessor(IWorkContextAccessor wca) { _wca = wca; + _currentCulture = new Lazy(() => new CultureInfo(_wca.GetContext().CurrentCulture)); } public CultureInfo CurrentCulture { - get { return new CultureInfo(_wca.GetContext().CurrentCulture); } + get { return _currentCulture.Value; } } } } \ No newline at end of file