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[]>(); }
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); }
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(); }