/
kochkatech
/
Queue
Обзор
Документация
Войти
/
kochkatech
/
Queue
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
master
src/Queue.Admin/App.xaml.cs
75 строк
2 KB
kochkareal
init: Начальная структура проекта и панель администратора
24 июл 2026, 21:42
24 июл 2026, 21:42
cd5152a
Код
Авторство
О чём код?
using System.Linq; using System.Windows; using System.Windows.Media; using Queue.Admin.ViewModels; using Queue.Core.Models; using Queue.Data; namespace Queue.Admin; public partial class App : Application { protected override void OnStartup(StartupEventArgs e) { base.OnStartup(e); // На этапе разработки — Database.EnsureCreated(); миграции подключим отдельно (см. Queue.Data/README.md). var dbContextFactory = new QueueDbContextFactory(); using (var db = dbContextFactory.CreateDbContext()) { db.Database.EnsureCreated(); var organization = db.Organizations.FirstOrDefault(); ApplyBrandOverrides(organization); } var shellViewModel = new ShellViewModel(dbContextFactory); var mainWindow = new MainWindow { DataContext = shellViewModel }; mainWindow.Show(); } // Цвета клиента (экран "Настройки" -> Organization) подменяют ресурсы до создания // MainWindow — StaticResource в окне подхватит уже новые значения. Если у организации // цвета не заданы, остаются значения по умолчанию из Themes/BrandColors.xaml. private void ApplyBrandOverrides(Organization? organization) { if (organization is null) { return; } if (TryParseColor(organization.MainColorHex, out var mainColor)) { Resources["MainColor"] = mainColor; Resources["MainBrush"] = new SolidColorBrush(mainColor); } if (TryParseColor(organization.FocusColorHex, out var focusColor)) { Resources["FocusColor"] = focusColor; Resources["FocusBrush"] = new SolidColorBrush(focusColor); } } private static bool TryParseColor(string? hex, out Color color) { color = default; if (string.IsNullOrWhiteSpace(hex)) { return false; } try { color = (Color)ColorConverter.ConvertFromString(hex); return true; } catch { return false; } } }