XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet

XFEEDToolBox

【WinUI】XFE精英危险工具箱

公开
关注 0 Fork 0 Star 0
UTF-8
using CommunityToolkit.Mvvm.Input;
using XFEEDToolBox.Core.Presentation;

namespace XFEEDToolBox.ViewModels;

public partial class ToolboxViewModel
{
    private bool CanExecuteTradePlan() => SelectedStart is not null && AutomaticDestination is not null && SelectedStart.MarketId!=AutomaticDestination.MarketId && !RunActive && !SessionBusy && !NavigationActive
        && (SelectedTradeCandidate is not null||manualTradeConfigured) && !TradeHasExistingCargo
        && !DemoMode && !Environment.GetCommandLineArgs().Contains("--offline-preview");

    partial void OnSelectedStartChanged(StationLiveRow? value){NoteManualTradeConfiguration();InvalidateTradeCandidates();NotifyTradePlanningSummary();RefreshTradePlanCommands();}

    private void RefreshTradePlanCommands()
    {
        StartPlanCommand.NotifyCanExecuteChanged();
        ExecuteTradePlanCommand.NotifyCanExecuteChanged();
        UpdateAndStartAutomaticTradeCommand.NotifyCanExecuteChanged();
    }

    [RelayCommand(CanExecute = nameof(CanExecuteTradePlan))]
    private async Task ExecuteTradePlanAsync(CancellationToken cancellationToken)
    {
        if (!CanExecuteTradePlan()) return;
        if(TradeExecutesFullPlan)
        {
            ExecutionModeIndex=2;
            await StartPlanAsync(cancellationToken);
            return;
        }
        await RunSelectedAutomaticTradeAsync();
    }
}