예제 #1
0
        private async void ExportWorkersCommand(object parameter)
        {
            var window = new SelectWorkers();

            window.SizeToContent = SizeToContent.WidthAndHeight;
            var vm = new SelectWorkersVM();

            vm.Workers = Workers.WorkerList;

            bool[] queries = SaveQueries();

            window.DataContext = vm;
            vm.Title           = "Export Workers";
            vm.ButtonTitle     = "Export";
            var dialogResult = window.ShowDialog();

            if (dialogResult == false)
            {
                RestoreQueries(queries);
                return;
            }

            var workersToSave = Workers.WorkerList.Where(x => x.Query).ToList();

            if (workersToSave == null || workersToSave.Count == 0)
            {
                RestoreQueries(queries);
                return;
            }

            SaveFileDialog saveFileDialog = new SaveFileDialog();

            saveFileDialog.Filter          = "JSON file|*.json";
            saveFileDialog.OverwritePrompt = true;
            var saveDialogResult = saveFileDialog.ShowDialog();

            if (saveDialogResult == false)
            {
                RestoreQueries(queries);
                return;
            }

            var json = JsonConverter.ConvertToJson(workersToSave);

            if (json == null)
            {
                await Task.Delay(100);

                MessageBox.Show("Failed to convert selected workers to JSON format", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
                RestoreQueries(queries);
                return;
            }
            string jsonFormatted = JsonConverter.FormatJson(json);

            Helpers.WriteToTxtFile(saveFileDialog.FileName, jsonFormatted);
            RestoreQueries(queries);
        }
예제 #2
0
        private void UpdateCoinsCommand(object obj)
        {
            var window = new SelectWorkers();

            window.Width = 400; window.Height = 300;
            var vm = new SelectWorkersVM(showNotes: true);

            vm.Title       = "Update Coins In Workers";
            vm.ButtonTitle = "Update";
            var workersCopy = new ObservableCollection <Worker>();

            bool[] queries = SaveQueries();
            vm.Workers         = Workers.WorkerList;
            window.DataContext = vm;
            var dialogResult = window.ShowDialog();

            RestoreQueries(queries);
        }
예제 #3
0
        private async void ImportWorkersCommand(object parameter)
        {
            OpenFileDialog openFileDialog = new OpenFileDialog();

            openFileDialog.Filter = "JSON file|*.json";
            var openFileDialogResult = openFileDialog.ShowDialog();

            if (openFileDialogResult == false || string.IsNullOrEmpty(openFileDialog.FileName))
            {
                return;
            }

            string workersContent = null;
            ObservableCollection <Worker> convertedWorkers = null;

            try { workersContent = System.IO.File.ReadAllText(openFileDialog.FileName); }
            catch
            {
                await Task.Delay(100);

                MessageBox.Show($"There was an error while reading from \"{openFileDialog.FileName}\"", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
                return;
            }
            convertedWorkers = JsonConverter.ConvertFromJson <ObservableCollection <Worker> >(workersContent, false);
            if (convertedWorkers == null || convertedWorkers.Count == 0)
            {
                await Task.Delay(100);

                Helpers.ShowErrorMessage($"Failed to intepret JSON information from \"{openFileDialog.FileName}\"", "Error");
                return;
            }

            var window = new SelectWorkers();

            window.SizeToContent = SizeToContent.WidthAndHeight;
            var vm = new SelectWorkersVM();

            vm.Workers = convertedWorkers;
            foreach (var worker in vm.Workers)
            {
                worker.Query = true;
            }
            window.DataContext = vm;
            vm.Title           = "Import Workers";
            vm.ButtonTitle     = "Import";
            var dialogResult = window.ShowDialog();

            if (dialogResult == false)
            {
                return;
            }

            var selectedWorkers = vm.Workers.Where(x => x.Query).ToList();

            if (selectedWorkers == null || selectedWorkers.Count == 0)
            {
                return;
            }

            var workerIndex = Workers.WorkerList.IndexOf((Worker)parameter);

            Workers.WorkerListAddRangeAt(selectedWorkers, workerIndex);
        }