From 80f234c6b121061650ce8ff797b5490014b2e880 Mon Sep 17 00:00:00 2001 From: Hamid Reza Mohammadi Date: Wed, 3 Nov 2021 19:23:15 +0330 Subject: [PATCH] #233 using poet groups instead of poets for map --- GanjooRazor/Pages/Map.cshtml | 3 ++- GanjooRazor/Pages/Map.cshtml.cs | 32 +++++++++++++++++++------------- 2 files changed, 21 insertions(+), 14 deletions(-) diff --git a/GanjooRazor/Pages/Map.cshtml b/GanjooRazor/Pages/Map.cshtml index 029d94a7..b746911b 100644 --- a/GanjooRazor/Pages/Map.cshtml +++ b/GanjooRazor/Pages/Map.cshtml @@ -49,8 +49,9 @@ var oms = new OverlappingMarkerSpiderfier(map, { keepSpiderfied: false }); - var poets = @(Html.Raw(Newtonsoft.Json.JsonConvert.SerializeObject(Model.PoetsWithBirthPlaces, Newtonsoft.Json.Formatting.Indented))); + var poetsgroups = @(Html.Raw(Newtonsoft.Json.JsonConvert.SerializeObject(Model.PoetGroupsWithBirthPlaces, Newtonsoft.Json.Formatting.Indented))); + var poets = poetsgroups[0].Poets; for (var i = 0; i < poets.length; i++) { var poet = poets[i]; var icon = L.icon({ diff --git a/GanjooRazor/Pages/Map.cshtml.cs b/GanjooRazor/Pages/Map.cshtml.cs index 33b25809..9ffcf94c 100644 --- a/GanjooRazor/Pages/Map.cshtml.cs +++ b/GanjooRazor/Pages/Map.cshtml.cs @@ -1,4 +1,4 @@ -using System.Collections.Generic; +using System.Collections.Generic; using System.Linq; using System.Net.Http; using System.Threading.Tasks; @@ -13,26 +13,23 @@ namespace GanjooRazor.Pages { public class MapModel : PageModel { - /// - /// Poets - /// - public List PoetsWithBirthPlaces { get; set; } - - private async Task _PreparePoets() + private async Task> _PreparePoets() { var response = await _httpClient.GetAsync($"{APIRoot.Url}/api/ganjoor/poets"); response.EnsureSuccessStatusCode(); var poets = JArray.Parse(await response.Content.ReadAsStringAsync()).ToObject>(); - PoetsWithBirthPlaces = poets.Where(p => !string.IsNullOrEmpty(p.BirthPlace)).ToList(); + var poetsWithBirthPlaces = poets.Where(p => !string.IsNullOrEmpty(p.BirthPlace)).ToList(); - foreach (var poet in PoetsWithBirthPlaces) + foreach (var poet in poetsWithBirthPlaces) { poet.ImageUrl = $"{APIRoot.InternetUrl}{poet.ImageUrl}"; } + + return poetsWithBirthPlaces; } - + public List PoetGroupsWithBirthPlaces { get; set; } private async Task _PreparePoetGroups() @@ -41,10 +38,20 @@ namespace GanjooRazor.Pages response.EnsureSuccessStatusCode(); var poetGroups = JArray.Parse(await response.Content.ReadAsStringAsync()).ToObject>(); PoetGroupsWithBirthPlaces = new List(); + PoetGroupsWithBirthPlaces.Add + ( + new GanjoorCenturyViewModel() + { + Id = 0, + Name = "همهٔ اعصار", + ShowInTimeLine = true, + Poets = await _PreparePoets() + } + ); foreach (var poetGroup in poetGroups) { poetGroup.Poets = poetGroup.Poets.Where(p => !string.IsNullOrEmpty(p.BirthPlace)).ToList(); - if(poetGroup.Poets.Count > 0) + if (poetGroup.Poets.Count > 0) { PoetGroupsWithBirthPlaces.Add(poetGroup); } @@ -53,7 +60,6 @@ namespace GanjooRazor.Pages public async Task OnGetAsync() { - await _PreparePoets(); await _PreparePoetGroups(); return Page(); } @@ -68,7 +74,7 @@ namespace GanjooRazor.Pages /// private readonly IMemoryCache _memoryCache; - + public MapModel(IConfiguration configuration, HttpClient httpClient, IMemoryCache memoryCache