using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using HyperCube.Models; using Microsoft.AspNetCore.Components; using Microsoft.AspNetCore.Components.Authorization; using Microsoft.AspNetCore.Identity; using Console = HyperCube.Utils.AdvConsole; namespace HyperCube { /// /// Синглтон приложения /// public class AppData { public ReportModel Report { get; set; } = new(); public AccountModel CurrentAccount { get; set; } public ArticleModel CurrentArticle { get; set; } public ArticleModel CurrentArticleClone { get; set; } private static Dictionary _articles; public static Dictionary Articles { get { if (_articles == null) LoadArticles(); return _articles; } } public static async Task LoadArticles() { Console.WriteLine("GetArticles()"); MySQLConnector dbCon = MySQLConnector.Instance(); string stringSQL = $"SELECT a.id, filename, article_name, date_publish, authors, ah.action_type " + $"FROM articles a " + $"LEFT JOIN actions_history ah ON a.id = ah.article_id " + $"AND EXISTS (SELECT 1 FROM actions_history ah1 WHERE ah.article_id = ah1.article_id HAVING MAX(ah1.date_add) = ah.date_add) " + $"ORDER BY a.id"; _articles = await dbCon.SQLSelectArticles(stringSQL); } } }