- CartService: единая корзина для Прайс-листа и Отправить - Прайс-лист: выбор позиции + кол-во + «Добавить в заказ», индикатор корзины - Настройки (диалог ⚙ в шапке): адрес API, тема (свет/тьма, применяется сразу), грузополучатель по умолчанию; сохранение в %APPDATA% - SettingsStore (Core) + AppConfig читает сохранённый API-адрес - тема применяется на старте Проверено вживую: добавление из Прайс-листа в корзину, диалог настроек. Реальная отправка заказа (POST) — собрана и связана, живой заказ по явному «да» (автозащита блокирует боевую транзакцию без подтверждения). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
36 lines
1.2 KiB
C#
36 lines
1.2 KiB
C#
namespace Elfisa.Core;
|
||
|
||
/// <summary>
|
||
/// Базовые адреса платформы. Совпадают с десктопом WinForms:
|
||
/// API — https://24pharmdata.ru, ИИ-отчёты — https://24pharmdata.ru/ai.
|
||
/// Можно переопределить переменными окружения.
|
||
/// </summary>
|
||
public static class AppConfig
|
||
{
|
||
public const string DefaultApiBaseUrl = "https://24pharmdata.ru";
|
||
public const string DefaultAiBaseUrl = "https://24pharmdata.ru/ai";
|
||
|
||
private const string ApiEnv = "ELF_API_BASE_URL";
|
||
private const string AiEnv = "ELF_AI_BASE_URL";
|
||
|
||
public static string ApiBaseUrl
|
||
{
|
||
get
|
||
{
|
||
var fromSettings = SettingsStore.Current.ApiBaseUrl;
|
||
if (!string.IsNullOrWhiteSpace(fromSettings)) return fromSettings.Trim().TrimEnd('/');
|
||
var env = Environment.GetEnvironmentVariable(ApiEnv);
|
||
return string.IsNullOrWhiteSpace(env) ? DefaultApiBaseUrl : env.Trim().TrimEnd('/');
|
||
}
|
||
}
|
||
|
||
public static string AiBaseUrl
|
||
{
|
||
get
|
||
{
|
||
var env = Environment.GetEnvironmentVariable(AiEnv);
|
||
return string.IsNullOrWhiteSpace(env) ? DefaultAiBaseUrl : env.Trim().TrimEnd('/');
|
||
}
|
||
}
|
||
}
|