コード例 #1
0
        public ExportsViewModel(
            Session session,
            ObservableCollection <SolveViewModel> solves,
            ISolvesJsonExporter?solvesJsonExporter = null,
            ISolvesCsvExporter?solvesCsvExporter   = null,
            ISolvesRepository?solvesRepository     = null)
        {
            _session            = session;
            _solveViewModels    = solves;
            _solves             = solves.Select(x => x.Model).ToList();
            _solvesJsonExporter = solvesJsonExporter ?? Ioc.GetService <ISolvesJsonExporter>();
            _solvesCsvExporter  = solvesCsvExporter ?? Ioc.GetService <ISolvesCsvExporter>();
            _solvesRepository   = solvesRepository ?? Ioc.GetService <ISolvesRepository>();

            SnackbarViewModel = new SnackbarViewModel(500, 96, 4);
            ExportJsonCommand = ReactiveCommand.CreateFromTask(ExportJsonAsync);
            ImportJsonCommand = ReactiveCommand.CreateFromTask(ImportJsonAsync);
            ExportCsvCommand  = ReactiveCommand.CreateFromTask(ExportCsvAsync);
            ImportCsvCommand  = ReactiveCommand.CreateFromTask(ImportCsvAsync);

            ExportJsonCommand.ThrownExceptions.Subscribe(async(e) => await Catch(e, "Podczas ekspotu wystąpił błąd."));
            ImportJsonCommand.ThrownExceptions.Subscribe(async(e) => await Catch(e, "Podczas importu wystąpił błąd."));
            ExportCsvCommand.ThrownExceptions.Subscribe(async(e) => await Catch(e, "Podczas ekspotu wystąpił błąd."));
            ImportCsvCommand.ThrownExceptions.Subscribe(async(e) => await Catch(e, "Podczas importu wystąpił błąd."));

            OkCommand = ReactiveCommand.Create(() => { SnackbarViewModel.Disposed = true; });

            ShowJsonFileDialog = new Interaction <Unit, string[]>();
            ShowCsvFileDialog  = new Interaction <Unit, string[]>();
        }
コード例 #2
0
        public SolvesListViewModel(
            SnackbarViewModel snackbarViewModel,
            ISolvesRepository?solvesRepository = null)
        {
            _snackbarViewModel = snackbarViewModel;
            _solvesRepository  = solvesRepository ?? Ioc.GetService <ISolvesRepository>();

            Solves = new ObservableCollection <SolveViewModel>();
            Solves.CollectionChanged += UpdateIndexesAsync;

            DeleteItemCommand = ReactiveCommand.CreateFromTask <SolveViewModel>(DeleteSolveAsync);
        }
コード例 #3
0
        public SolveViewModel(
            Solve solve,
            SnackbarViewModel snackbarViewModel,
            ISolvesRepository solvesSaver)
        {
            _snackbarViewModel = snackbarViewModel;
            _solvesRepository  = solvesSaver;

            Model    = solve;
            Time     = solve.TimeAsSpan;
            Flag     = solve.Flag;
            Date     = solve.Date;
            Scramble = solve.Scramble;

            SolveFlagsViewModel = new SolveFlagsViewModel(solve.Flag);

            EditSolveCommand = ReactiveCommand.CreateFromTask <Window>(EditSolve);
            AcceptCommand    = ReactiveCommand.CreateFromTask <Window>(SaveFlag);

            UpdateSummary();
        }