diff --git a/src/OrchardCoreContrib.GoogleMaps/AdminMenu.cs b/src/OrchardCoreContrib.GoogleMaps/AdminMenu.cs index b382294c..b957546b 100644 --- a/src/OrchardCoreContrib.GoogleMaps/AdminMenu.cs +++ b/src/OrchardCoreContrib.GoogleMaps/AdminMenu.cs @@ -1,42 +1,40 @@ -using Microsoft.Extensions.Localization; -using OrchardCoreContrib.GoogleMaps.Drivers; +using Microsoft.AspNetCore.Routing; +using Microsoft.Extensions.Localization; using OrchardCore.Navigation; +using OrchardCoreContrib.GoogleMaps.Drivers; + +namespace OrchardCoreContrib.GoogleMaps; + using OrchardCoreContrib.Navigation; -namespace OrchardCoreContrib.GoogleMaps +/// +/// Represents an admin menu for GoogleMaps module. +/// +/// +/// Initializes a new instance of . +/// +/// +public class AdminMenu(IStringLocalizer S) : AdminNavigationProvider { - using OrchardCoreContrib.Navigation; - - /// - /// Represents an admin menu for GoogleMaps module. - /// - public class AdminMenu : AdminNavigationProvider + private static readonly RouteValueDictionary _routeValues = new() { - private readonly IStringLocalizer S; - - /// - /// Initializes a new instance of . - /// - /// - public AdminMenu(IStringLocalizer stringLocalizer) - { - S = stringLocalizer; - } + { "area", "OrchardCore.Settings" }, + { "groupId", GoogleMapsSettingsDisplayDriver.GroupId }, + }; - /// - public override void BuildNavigation(NavigationBuilder builder) - { - builder - .Add(S["Configuration"], configuration => configuration - .Add(S["Settings"], settings => settings - .Add(S["Google Maps"], S["Google Maps"].PrefixPosition(), entry => entry - .AddClass("googlemaps").Id("googlemaps") - .Action("Index", "Admin", new { area = "OrchardCore.Settings", groupId = GoogleMapsSettingsDisplayDriver.GroupId }) - .Permission(Permissions.ManageGoogleMapsSettings) - .LocalNav() - ) + /// + public override void BuildNavigation(NavigationBuilder builder) + { + builder + .Add(S["Configuration"], configuration => configuration + .Add(S["Settings"], settings => settings + .Add(S["Google Maps"], S["Google Maps"].PrefixPosition(), entry => entry + .AddClass("googlemaps").Id("googlemaps") + .Action("Index", "Admin", _routeValues) + .Permission(GoogleMapsPermissions.ManageGoogleMapsSettings) + .LocalNav() ) - ); - } + ) + ); } } diff --git a/src/OrchardCoreContrib.GoogleMaps/Drivers/GoogleMapPartDisplayDriver.cs b/src/OrchardCoreContrib.GoogleMaps/Drivers/GoogleMapPartDisplayDriver.cs index 5ffebd2d..897f7f7c 100644 --- a/src/OrchardCoreContrib.GoogleMaps/Drivers/GoogleMapPartDisplayDriver.cs +++ b/src/OrchardCoreContrib.GoogleMaps/Drivers/GoogleMapPartDisplayDriver.cs @@ -1,52 +1,49 @@ using OrchardCore.ContentManagement.Display.ContentDisplay; using OrchardCore.ContentManagement.Display.Models; -using OrchardCore.DisplayManagement.ModelBinding; using OrchardCore.DisplayManagement.Views; using OrchardCoreContrib.GoogleMaps.Models; using OrchardCoreContrib.GoogleMaps.ViewModels; -using System.Threading.Tasks; -namespace OrchardCoreContrib.GoogleMaps.Drivers +namespace OrchardCoreContrib.GoogleMaps.Drivers; + +/// +/// Represents a display driver for . +/// +public class GoogleMapPartDisplayDriver : ContentPartDisplayDriver { - /// - /// Represents a display driver for . - /// - public class GoogleMapPartDisplayDriver : ContentPartDisplayDriver + public override IDisplayResult Display(GoogleMapPart part, BuildPartDisplayContext context) { - public override IDisplayResult Display(GoogleMapPart part, BuildPartDisplayContext context) - { - var settings = context.TypePartDefinition.GetSettings(); + var settings = context.TypePartDefinition.GetSettings(); - return Initialize(GetDisplayShapeType(context), model => - { - model.Latitude = part.Latitude; - model.Longitude = part.Longitude; - model.GoogleMapPart = part; - model.ContentItem = part.ContentItem; - model.Settings = settings; - }) - .Location("Detail", "Content:20") - .Location("Summary", "Meta:5"); + return Initialize(GetDisplayShapeType(context), model => + { + model.Latitude = part.Latitude; + model.Longitude = part.Longitude; + model.GoogleMapPart = part; + model.ContentItem = part.ContentItem; + model.Settings = settings; + }) + .Location("Detail", "Content:20") + .Location("Summary", "Meta:5"); - } + } - public override IDisplayResult Edit(GoogleMapPart part, BuildPartEditorContext context) + public override IDisplayResult Edit(GoogleMapPart part, BuildPartEditorContext context) + { + return Initialize(GetEditorShapeType(context), model => { - return Initialize(GetEditorShapeType(context), model => - { - model.Latitude = part.Latitude; - model.Longitude = part.Longitude; - model.GoogleMapPart = part; - model.ContentItem = part.ContentItem; - model.Settings = context.TypePartDefinition.GetSettings(); - }); - } + model.Latitude = part.Latitude; + model.Longitude = part.Longitude; + model.GoogleMapPart = part; + model.ContentItem = part.ContentItem; + model.Settings = context.TypePartDefinition.GetSettings(); + }); + } - public override async Task UpdateAsync(GoogleMapPart model, UpdatePartEditorContext context) - { - await context.Updater.TryUpdateModelAsync(model, Prefix, p => p.Latitude, p => p.Longitude); + public override async Task UpdateAsync(GoogleMapPart model, UpdatePartEditorContext context) + { + await context.Updater.TryUpdateModelAsync(model, Prefix, p => p.Latitude, p => p.Longitude); - return Edit(model, context); - } + return Edit(model, context); } } diff --git a/src/OrchardCoreContrib.GoogleMaps/Drivers/GoogleMapsSettingsDisplayDriver.cs b/src/OrchardCoreContrib.GoogleMaps/Drivers/GoogleMapsSettingsDisplayDriver.cs index b43c9b47..7ea4b0b1 100644 --- a/src/OrchardCoreContrib.GoogleMaps/Drivers/GoogleMapsSettingsDisplayDriver.cs +++ b/src/OrchardCoreContrib.GoogleMaps/Drivers/GoogleMapsSettingsDisplayDriver.cs @@ -6,90 +6,77 @@ using OrchardCore.DisplayManagement.Views; using OrchardCore.Settings; using OrchardCoreContrib.GoogleMaps.ViewModels; -using System.Threading.Tasks; -namespace OrchardCoreContrib.GoogleMaps.Drivers +namespace OrchardCoreContrib.GoogleMaps.Drivers; + +/// +/// Represents a display driver for . +/// +/// +/// Initializes a new instance of . +/// +/// The . +/// The . +/// The . +public class GoogleMapsSettingsDisplayDriver( + IDataProtectionProvider dataProtectionProvider, + IHttpContextAccessor httpContextAccessor, + IAuthorizationService authorizationService) : SectionDisplayDriver { - /// - /// Represents a display driver for . - /// - public class GoogleMapsSettingsDisplayDriver : SectionDisplayDriver - { - public const string GroupId = "google-maps"; + public const string GroupId = "google-maps"; - private readonly IDataProtectionProvider _dataProtectionProvider; - private readonly IHttpContextAccessor _httpContextAccessor; - private readonly IAuthorizationService _authorizationService; + /// + public override async Task EditAsync(ISite model, GoogleMapsSettings section, BuildEditorContext context) + { + var user = httpContextAccessor.HttpContext?.User; - /// - /// Initializes a new instance of . - /// - /// The . - /// The . - /// The . - public GoogleMapsSettingsDisplayDriver( - IDataProtectionProvider dataProtectionProvider, - IHttpContextAccessor httpContextAccessor, - IAuthorizationService authorizationService) + if (!await authorizationService.AuthorizeAsync(user, GoogleMapsPermissions.ManageGoogleMapsSettings)) { - _dataProtectionProvider = dataProtectionProvider; - _httpContextAccessor = httpContextAccessor; - _authorizationService = authorizationService; + return null; } - /// - public override async Task EditAsync(ISite model, GoogleMapsSettings section, BuildEditorContext context) + return Initialize("GoogleMapsSettings_Edit", model => { - var user = _httpContextAccessor.HttpContext?.User; + model.ApiKey = section.ApiKey; + model.Latitude = section.Latitude; + model.Longitude = section.Longitude; + }).Location("Content").OnGroup(GroupId); + } - if (!await _authorizationService.AuthorizeAsync(user, Permissions.ManageGoogleMapsSettings)) - { - return null; - } + /// + public override async Task UpdateAsync(ISite model, GoogleMapsSettings section, UpdateEditorContext context) + { + var user = httpContextAccessor.HttpContext?.User; - return Initialize("GoogleMapsSettings_Edit", model => - { - model.ApiKey = section.ApiKey; - model.Latitude = section.Latitude; - model.Longitude = section.Longitude; - }).Location("Content").OnGroup(GroupId); + if (!await authorizationService.AuthorizeAsync(user, GoogleMapsPermissions.ManageGoogleMapsSettings)) + { + return null; } - /// - public override async Task UpdateAsync(ISite model, GoogleMapsSettings section, UpdateEditorContext context) + if (context.GroupId == GroupId) { - var user = _httpContextAccessor.HttpContext?.User; - - if (!await _authorizationService.AuthorizeAsync(user, Permissions.ManageGoogleMapsSettings)) + var viewModel = new GoogleMapsSettingsViewModel(); + var previousApiKey = section.ApiKey; + + if (await context.Updater.TryUpdateModelAsync(viewModel, Prefix, m => m.ApiKey, m => m.Latitude, m => m.Longitude)) { - return null; + section.ApiKey = viewModel.ApiKey; + section.Latitude = viewModel.Latitude; + section.Longitude = viewModel.Longitude; } - if (context.GroupId == GroupId) + if (string.IsNullOrWhiteSpace(section.ApiKey)) { - var viewModel = new GoogleMapsSettingsViewModel(); - var previousApiKey = section.ApiKey; - - if (await context.Updater.TryUpdateModelAsync(viewModel, Prefix, m => m.ApiKey, m => m.Latitude, m => m.Longitude)) - { - section.ApiKey = viewModel.ApiKey; - section.Latitude = viewModel.Latitude; - section.Longitude = viewModel.Longitude; - } - - if (string.IsNullOrWhiteSpace(section.ApiKey)) - { - section.ApiKey = previousApiKey; - } - else - { - var protector = _dataProtectionProvider.CreateProtector(GroupId); - - section.ApiKey = protector.Protect(section.ApiKey); - } + section.ApiKey = previousApiKey; } + else + { + var protector = dataProtectionProvider.CreateProtector(GroupId); - return await EditAsync(model, section, context); + section.ApiKey = protector.Protect(section.ApiKey); + } } + + return await EditAsync(model, section, context); } } diff --git a/src/OrchardCoreContrib.GoogleMaps/GoogleMapsDefaults.cs b/src/OrchardCoreContrib.GoogleMaps/GoogleMapsDefaults.cs index fd16afbb..d514e00e 100644 --- a/src/OrchardCoreContrib.GoogleMaps/GoogleMapsDefaults.cs +++ b/src/OrchardCoreContrib.GoogleMaps/GoogleMapsDefaults.cs @@ -1,9 +1,8 @@ -namespace OrchardCoreContrib.GoogleMaps +namespace OrchardCoreContrib.GoogleMaps; + +public class GoogleMapsDefaults { - public class GoogleMapsDefaults - { - public static readonly double Latitude = 15.5539; + public static readonly double Latitude = 15.5539; - public static readonly double Longitude = 48.1748; - } + public static readonly double Longitude = 48.1748; } diff --git a/src/OrchardCoreContrib.GoogleMaps/GoogleMapsPermissions.cs b/src/OrchardCoreContrib.GoogleMaps/GoogleMapsPermissions.cs new file mode 100644 index 00000000..3e13b308 --- /dev/null +++ b/src/OrchardCoreContrib.GoogleMaps/GoogleMapsPermissions.cs @@ -0,0 +1,14 @@ +using OrchardCore.Security.Permissions; + +namespace OrchardCoreContrib.GoogleMaps; + +/// +/// Represents a permissions that will be applied into GoogleMaps module. +/// +public class GoogleMapsPermissions +{ + /// + /// Gets a permission for managing a Google Maps settings. + /// + public static readonly Permission ManageGoogleMapsSettings = new("ManageGoogleMapsSettings", "Manage Google Maps Settings"); +} diff --git a/src/OrchardCoreContrib.GoogleMaps/GoogleMapsSettings.cs b/src/OrchardCoreContrib.GoogleMaps/GoogleMapsSettings.cs index ea9efd6e..4451c21f 100644 --- a/src/OrchardCoreContrib.GoogleMaps/GoogleMapsSettings.cs +++ b/src/OrchardCoreContrib.GoogleMaps/GoogleMapsSettings.cs @@ -1,11 +1,10 @@ -namespace OrchardCoreContrib.GoogleMaps +namespace OrchardCoreContrib.GoogleMaps; + +public class GoogleMapsSettings { - public class GoogleMapsSettings - { - public string ApiKey { get; set; } + public string ApiKey { get; set; } - public double Latitude { get; set; } = GoogleMapsDefaults.Latitude; + public double Latitude { get; set; } = GoogleMapsDefaults.Latitude; - public double Longitude { get; set; } = GoogleMapsDefaults.Longitude; - } + public double Longitude { get; set; } = GoogleMapsDefaults.Longitude; } diff --git a/src/OrchardCoreContrib.GoogleMaps/Manifest.cs b/src/OrchardCoreContrib.GoogleMaps/Manifest.cs index 59214eec..60c22137 100644 --- a/src/OrchardCoreContrib.GoogleMaps/Manifest.cs +++ b/src/OrchardCoreContrib.GoogleMaps/Manifest.cs @@ -5,7 +5,7 @@ Name = "Google Maps", Author = ManifestConstants.Author, Website = ManifestConstants.Website, - Version = "1.3.1", + Version = "1.5.0", Description = "Displays Google maps.", Dependencies = new[] { "OrchardCore.Contents" }, Category = "Content Management" diff --git a/src/OrchardCoreContrib.GoogleMaps/Migrations/0001_CreateGoogleMapPart.cs b/src/OrchardCoreContrib.GoogleMaps/Migrations/0001_CreateGoogleMapPart.cs index 1cde4bfe..980ae70f 100644 --- a/src/OrchardCoreContrib.GoogleMaps/Migrations/0001_CreateGoogleMapPart.cs +++ b/src/OrchardCoreContrib.GoogleMaps/Migrations/0001_CreateGoogleMapPart.cs @@ -5,24 +5,17 @@ namespace OrchardCoreContrib.GoogleMaps.Migrations; [Migration(1)] -public class CreateGoogleMapPart : Migration +public class CreateGoogleMapPart(IContentDefinitionManager contentDefinitionManager) : Migration { - private readonly IContentDefinitionManager _contentDefinitionManager; - - public CreateGoogleMapPart(IContentDefinitionManager contentDefinitionManager) - { - _contentDefinitionManager = contentDefinitionManager; - } - public override void Up() { - _contentDefinitionManager.AlterPartDefinitionAsync("GoogleMapPart", builder => builder + contentDefinitionManager.AlterPartDefinitionAsync("GoogleMapPart", builder => builder .Attachable() .WithDescription("Provides a Google Map that you can use for your content item.")); } public override void Down() { - _contentDefinitionManager.DeletePartDefinitionAsync("GoogleMapPart").GetAwaiter().GetResult(); + contentDefinitionManager.DeletePartDefinitionAsync("GoogleMapPart").GetAwaiter().GetResult(); } } diff --git a/src/OrchardCoreContrib.GoogleMaps/Models/GoogleMapPart.cs b/src/OrchardCoreContrib.GoogleMaps/Models/GoogleMapPart.cs index 8b42f11d..ae497fe7 100644 --- a/src/OrchardCoreContrib.GoogleMaps/Models/GoogleMapPart.cs +++ b/src/OrchardCoreContrib.GoogleMaps/Models/GoogleMapPart.cs @@ -1,11 +1,10 @@ using OrchardCore.ContentManagement; -namespace OrchardCoreContrib.GoogleMaps.Models +namespace OrchardCoreContrib.GoogleMaps.Models; + +public class GoogleMapPart : ContentPart { - public class GoogleMapPart : ContentPart - { - public double Latitude { get; set; } + public double Latitude { get; set; } - public double Longitude { get; set; } - } + public double Longitude { get; set; } } diff --git a/src/OrchardCoreContrib.GoogleMaps/OrchardCoreContrib.GoogleMaps.csproj b/src/OrchardCoreContrib.GoogleMaps/OrchardCoreContrib.GoogleMaps.csproj index bebfa2ef..91c1069f 100644 --- a/src/OrchardCoreContrib.GoogleMaps/OrchardCoreContrib.GoogleMaps.csproj +++ b/src/OrchardCoreContrib.GoogleMaps/OrchardCoreContrib.GoogleMaps.csproj @@ -4,10 +4,11 @@ net8.0 true true - 1.4.0 + 1.5.0 The Orchard Core Contrib Team Provides a part to display a Google Maps. + README.md BSD-3-Clause https://github.com/OrchardCoreContrib/OrchardCoreContrib.Modules/tree/main/src/OrchardCoreContrib.GoogleMaps/README.md https://github.com/OrchardCoreContrib/OrchardCoreContrib.Modules @@ -27,6 +28,7 @@ + diff --git a/src/OrchardCoreContrib.GoogleMaps/Permissions.cs b/src/OrchardCoreContrib.GoogleMaps/Permissions.cs index da7d25ad..7af4b0c8 100644 --- a/src/OrchardCoreContrib.GoogleMaps/Permissions.cs +++ b/src/OrchardCoreContrib.GoogleMaps/Permissions.cs @@ -1,41 +1,28 @@ using OrchardCore.Security.Permissions; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -namespace OrchardCoreContrib.GoogleMaps +namespace OrchardCoreContrib.GoogleMaps; + +/// +/// Represents a permissions that will be applied into GoogleMaps module. +/// +public class Permissions : IPermissionProvider { - /// - /// Represents a permissions that will be applied into GoogleMaps module. - /// - public class Permissions : IPermissionProvider - { - /// - /// Gets a permission for managing a Gmail settings. - /// - public static readonly Permission ManageGoogleMapsSettings = new Permission("ManageGoogleMapsSettings", "Manage Google Maps Settings"); + private readonly IEnumerable _allPermissions = + [ + GoogleMapsPermissions.ManageGoogleMapsSettings, + ]; + + /// + public Task> GetPermissionsAsync() => Task.FromResult(_allPermissions); - /// - public Task> GetPermissionsAsync() - { - return Task.FromResult(new[] - { - ManageGoogleMapsSettings - } - .AsEnumerable()); - } - /// - public IEnumerable GetDefaultStereotypes() + /// + public IEnumerable GetDefaultStereotypes() => + [ + new PermissionStereotype { - return new[] - { - new PermissionStereotype - { - Name = "Administrator", - Permissions = new[] { ManageGoogleMapsSettings } - }, - }; - } - } + Name = "Administrator", + Permissions = _allPermissions + }, + ]; } diff --git a/src/OrchardCoreContrib.GoogleMaps/README.md b/src/OrchardCoreContrib.GoogleMaps/README.md index 685b1e0b..d95c3883 100644 --- a/src/OrchardCoreContrib.GoogleMaps/README.md +++ b/src/OrchardCoreContrib.GoogleMaps/README.md @@ -4,7 +4,7 @@ This module allows you to display Google Map in you content item. ## Version -1.3.1 +1.5.0 ## Category @@ -28,6 +28,7 @@ Content Management | Name | Version | |-------------------------------------------------------------------------------------------------------|---------| +| [`OrchardCoreContrib.GoogleMaps`](https://www.nuget.org/packages/OrchardCoreContrib.GoogleMaps/1.5.0) | 1.5.0 | | [`OrchardCoreContrib.GoogleMaps`](https://www.nuget.org/packages/OrchardCoreContrib.GoogleMaps/1.4.0) | 1.4.0 | | [`OrchardCoreContrib.GoogleMaps`](https://www.nuget.org/packages/OrchardCoreContrib.GoogleMaps/1.3.1) | 1.3.1 | | [`OrchardCoreContrib.GoogleMaps`](https://www.nuget.org/packages/OrchardCoreContrib.GoogleMaps/1.3.0) | 1.3.0 | diff --git a/src/OrchardCoreContrib.GoogleMaps/Startup.cs b/src/OrchardCoreContrib.GoogleMaps/Startup.cs index 1f51411a..c7d0b63c 100644 --- a/src/OrchardCoreContrib.GoogleMaps/Startup.cs +++ b/src/OrchardCoreContrib.GoogleMaps/Startup.cs @@ -13,26 +13,25 @@ using OrchardCoreContrib.GoogleMaps.Models; using OrchardCoreContrib.GoogleMaps.ViewModels; -namespace OrchardCoreContrib.GoogleMaps +namespace OrchardCoreContrib.GoogleMaps; + +public class Startup : StartupBase { - public class Startup : StartupBase + public override void ConfigureServices(IServiceCollection services) { - public override void ConfigureServices(IServiceCollection services) + services.Configure(o => { - services.Configure(o => - { - o.MemberAccessStrategy.Register(); - o.MemberAccessStrategy.Register(); - }); + o.MemberAccessStrategy.Register(); + o.MemberAccessStrategy.Register(); + }); - services.AddScoped(); - services.AddScoped(); + services.AddScoped(); + services.AddScoped(); - services.AddTransient(); - services.AddScoped, GoogleMapsSettingsDisplayDriver>(); + services.AddTransient(); + services.AddScoped, GoogleMapsSettingsDisplayDriver>(); - services.AddContentPart() - .UseDisplayDriver(); - } + services.AddContentPart() + .UseDisplayDriver(); } } diff --git a/src/OrchardCoreContrib.GoogleMaps/ViewModels/GoogleMapPartViewModel.cs b/src/OrchardCoreContrib.GoogleMaps/ViewModels/GoogleMapPartViewModel.cs index 029eec55..de8b1d11 100644 --- a/src/OrchardCoreContrib.GoogleMaps/ViewModels/GoogleMapPartViewModel.cs +++ b/src/OrchardCoreContrib.GoogleMaps/ViewModels/GoogleMapPartViewModel.cs @@ -1,25 +1,23 @@ using Microsoft.AspNetCore.Mvc.ModelBinding; using OrchardCore.ContentManagement; using OrchardCoreContrib.GoogleMaps.Models; -using System; -namespace OrchardCoreContrib.GoogleMaps.ViewModels +namespace OrchardCoreContrib.GoogleMaps.ViewModels; + +public class GoogleMapPartViewModel { - public class GoogleMapPartViewModel - { - public double Latitude { get; set; } + public double Latitude { get; set; } - public double Longitude { get; set; } + public double Longitude { get; set; } - [BindNever] - public ContentItem ContentItem { get; set; } + [BindNever] + public ContentItem ContentItem { get; set; } - [BindNever] - public GoogleMapPart GoogleMapPart { get; set; } + [BindNever] + public GoogleMapPart GoogleMapPart { get; set; } - [BindNever] - public GoogleMapsSettings Settings { get; set; } + [BindNever] + public GoogleMapsSettings Settings { get; set; } - public bool DevelopmentMode => String.IsNullOrEmpty(Settings.ApiKey); - } + public bool DevelopmentMode => String.IsNullOrEmpty(Settings.ApiKey); } diff --git a/src/OrchardCoreContrib.GoogleMaps/ViewModels/GoogleMapsSettingsViewModel.cs b/src/OrchardCoreContrib.GoogleMaps/ViewModels/GoogleMapsSettingsViewModel.cs index 5341b06a..b64fb595 100644 --- a/src/OrchardCoreContrib.GoogleMaps/ViewModels/GoogleMapsSettingsViewModel.cs +++ b/src/OrchardCoreContrib.GoogleMaps/ViewModels/GoogleMapsSettingsViewModel.cs @@ -1,15 +1,14 @@ using System.ComponentModel.DataAnnotations; -namespace OrchardCoreContrib.GoogleMaps.ViewModels +namespace OrchardCoreContrib.GoogleMaps.ViewModels; + +public class GoogleMapsSettingsViewModel { - public class GoogleMapsSettingsViewModel - { - public string ApiKey { get; set; } + public string ApiKey { get; set; } - [Required] - public double Latitude { get; set; } + [Required] + public double Latitude { get; set; } - [Required] - public double Longitude { get; set; } - } + [Required] + public double Longitude { get; set; } } diff --git a/src/OrchardCoreContrib.GoogleMaps/Views/GoogleMapPart.cshtml b/src/OrchardCoreContrib.GoogleMaps/Views/GoogleMapPart.cshtml index 45ea87b5..78c5d823 100644 --- a/src/OrchardCoreContrib.GoogleMaps/Views/GoogleMapPart.cshtml +++ b/src/OrchardCoreContrib.GoogleMaps/Views/GoogleMapPart.cshtml @@ -1,11 +1,26 @@ -@using OrchardCoreContrib.GoogleMaps +@using System.Globalization +@using OrchardCore.Localization +@using OrchardCoreContrib.GoogleMaps @using OrchardCoreContrib.GoogleMaps.ViewModels @model GoogleMapPartViewModel @{ var queryString = Model.DevelopmentMode - ? $"callback=loadMap" - : $"key={Model.Settings.ApiKey}&callback=loadMap"; + ? $"callback=loadMap" + : $"key={Model.Settings.ApiKey}&callback=loadMap"; + + var defaultLatitude = string.Empty; + var defaultLongitude = string.Empty; + var latitude = string.Empty; + var longitude = string.Empty; + + using (var c = CultureScope.Create("en-US")) + { + defaultLatitude = GoogleMapsDefaults.Latitude.ToString(CultureInfo.InvariantCulture); + defaultLongitude = GoogleMapsDefaults.Longitude.ToString(CultureInfo.InvariantCulture); + latitude = Model.Latitude.ToString(CultureInfo.InvariantCulture); + longitude = Model.Longitude.ToString(CultureInfo.InvariantCulture); + } }
@@ -13,13 +28,12 @@