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());
        }
Exemple #2
0
        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;
        }