5 changed files with 3 additions and 103 deletions
@ -1,76 +0,0 @@
|
||||
using System.Net.Http.Json; |
||||
using Model.Website; |
||||
|
||||
namespace Services.Development; |
||||
|
||||
public class WebsiteService : IWebsiteService |
||||
{ |
||||
private readonly HttpClient httpClient; |
||||
|
||||
private bool isLoaded; |
||||
|
||||
|
||||
public WebsiteService(HttpClient httpClient) |
||||
{ |
||||
this.httpClient = httpClient; |
||||
} |
||||
|
||||
|
||||
public List<WebSectionModel> WebSectionModels { get; set; } = default!; |
||||
public List<WebPageModel> WebPageModels { get; set; } = default!; |
||||
|
||||
|
||||
public void Subscribe(Action action) |
||||
{ |
||||
OnChange += action; |
||||
} |
||||
|
||||
public void Unsubscribe(Action action) |
||||
{ |
||||
OnChange -= action; |
||||
} |
||||
|
||||
public bool IsLoaded() |
||||
{ |
||||
return isLoaded; |
||||
} |
||||
|
||||
public async Task Load() |
||||
{ |
||||
if (isLoaded) return; |
||||
|
||||
WebPageModels = (await httpClient.GetFromJsonAsync<WebPageModel[]>("generated/WebPageModels.json"))!.ToList(); |
||||
WebSectionModels = (await httpClient.GetFromJsonAsync<WebSectionModel[]>("generated/WebSectionModels.json"))! |
||||
.ToList(); |
||||
|
||||
isLoaded = true; |
||||
|
||||
SortSql(); |
||||
|
||||
NotifyDataChanged(); |
||||
} |
||||
|
||||
public void Update() |
||||
{ |
||||
NotifyDataChanged(); |
||||
} |
||||
|
||||
private event Action OnChange = default!; |
||||
|
||||
private void SortSql() |
||||
{ |
||||
foreach (var page in WebPageModels) |
||||
if (page.WebSectionModelId != null) |
||||
{ |
||||
var webSection = |
||||
WebSectionModels.Find(webSection => webSection.Id == page.WebSectionModelId); |
||||
|
||||
webSection.WebPageModels.Add(page); |
||||
} |
||||
} |
||||
|
||||
private void NotifyDataChanged() |
||||
{ |
||||
OnChange?.Invoke(); |
||||
} |
||||
} |
||||
Loading…
Reference in new issue