public CPackConsoleViewModel(string projectRootDirectory) { ConsoleMessages = new ObservableCollection <string>(); Service = new CPackService(); ProjectRootDirectory = projectRootDirectory; ConsoleMessages.Add("Connecting..."); TextBoxEnabled = false; Task <int> task = CurrentApplication.CheckNewWebServiceVersionAsync(); task.ContinueWith(version => { if (version.Result == 0) { ConsoleMessages.Add("Failed to contact server " + CurrentApplication.TypeSqfDomain + "."); ConsoleMessages.Add(">"); TextBoxEnabled = true; } else if (version.Result == CurrentWebService.Version) { ConsoleMessages.Clear(); ConsoleMessages.Add("Please use any of the following commands:"); ConsoleMessages.Add(" Install <packagename> [-version <version>] [-beta]"); ConsoleMessages.Add(" Update <packagename> [-version <version>] [-beta]"); ConsoleMessages.Add(" Remove <packagename>"); ConsoleMessages.Add(" List [-beta]"); ConsoleMessages.Add(" Exit"); TextBoxEnabled = true; } else { ConsoleMessages.Add("CPack version has changed and need to be updated before use. Pleast update TypeSqf to latest version and try again."); ConsoleMessages.Add(">"); } }, TaskScheduler.FromCurrentSynchronizationContext()); }
public CPackConsole(string projectRootDirectory) { DataContext = new CPackConsoleViewModel(projectRootDirectory); Service = new CPackService(); PreviousCommands = new List <string>(); InitializeComponent(); CommandTextBox.Focus(); DialogContext = SynchronizationContext.Current; MyContext.PropertyChanged += (sender, args) => { if (args.PropertyName == "TextBoxEnabled") { Thread.Sleep(200); DialogContext.Post(val => { if (CommandTextBox.IsEnabled) { CommandTextBox.Focus(); } }, sender); } }; MyContext.Exit += MyContext_Exit; }