public DataSelectViewModel(IDataHandler <DocumentSet> dataHandler, IFileManagerFactory fileManagerFactory, IFolderBrowserDialogService openFolder) : base(dataHandler) { Guard.NotNull(() => openFolder, openFolder); Guard.NotNull(() => fileManagerFactory, fileManagerFactory); this.fileManagerFactory = fileManagerFactory; Select = new SelectableViewModel(openFolder, this); var canSearch = this.WhenAny(x => x.Select.Path, x => x.Value != null && Directory.Exists(x.Value)); var visibility = Observable.Return(Visibility.Visible); InitMain(canSearch, visibility); }
public MonitorViewModel( IDataSelectViewModel dataViewModel, ITrainingViewModel trainingViewModel, IFileMonitorFactory fileMonitorFactory, IFolderBrowserDialogService folderBrowserDialog) : base(new NullHandler <IFileMonitor>()) { Guard.NotNull(() => trainingViewModel, trainingViewModel); Guard.NotNull(() => fileMonitorFactory, fileMonitorFactory); Guard.NotNull(() => dataViewModel, dataViewModel); this.dataViewModel = dataViewModel; this.trainingViewModel = trainingViewModel; this.fileMonitorFactory = fileMonitorFactory; Monitor = new SelectableViewModel(folderBrowserDialog, this, Observable.Return(Settings.Default.MonitorPath)); Destination = new SelectableViewModel(folderBrowserDialog, path: dataViewModel.Select.PathData); var canMonitor = this.WhenAny(x => x.Monitor.Path, y => y.Result, (x, y) => x.Value != null && Directory.Exists(x.Value) && y.Value == null); this.WhenAnyValue(x => x.Monitor.Path) .Where(x => x != Settings.Default.MonitorPath) .Subscribe( x => { Settings.Default.MonitorPath = x; Settings.Default.Save(); }); var visibility = this.WhenAny( item => item.trainingViewModel.Result, item => item.dataViewModel.Result, (model1, model2) => model1.Value == null || model2.Value == null ? Visibility.Collapsed : Visibility.Visible); classes = this.WhenAny(item => item.trainingViewModel.Result, model => ((NominalHeader)model.Value?.DataSet?.Header?.Class)?.Nominals).ToProperty(this, model => model.Classes); InitMain(canMonitor, visibility); PendingFiles = resultList.CreateDerivedCollection(x => x, scheduler: RxApp.MainThreadScheduler); var selected = SelectedItems.CreateDerivedCollection(x => x); var canMove = selected.Changed.StartWith().Select(_ => selected.Count > 0); Move = ReactiveCommand.Create(MoveSelected, canMove); Move.Subscribe(o => { MoveSelected(); }); Move.ThrownExceptions.Subscribe( ex => { MessageBox.Show("Move of some items failed", "Error", MessageBoxButton.OK); }); }
public void CanExecute() { new TestScheduler().With( async scheduler => { var isExecuting = scheduler.CreateColdObservable( new Recorded <Notification <bool> >(0, Notification.CreateOnNext(false)), new Recorded <Notification <bool> >(TimeSpan.FromMilliseconds(200).Ticks, Notification.CreateOnNext(true))); parent.Setup(item => item.IsExecuting).Returns(isExecuting); instance = new SelectableViewModel(openFolder.Object, parent.Object, Observable.Return("Test")); scheduler.AdvanceByMs(100); var result = await instance.Open.CanExecute; Assert.True(result); scheduler.AdvanceByMs(500); result = await instance.Open.CanExecute; Assert.IsFalse(result); }); }
public void Test_PropertyChanged_Ok() { SelectableViewModel <int> selectableViewModel = new SelectableViewModel <int>(2, false); Assert.Equal(2, selectableViewModel.Item); Assert.False(selectableViewModel.IsSelected); string propertyName = null; selectableViewModel.PropertyChanged += (sender, args) => propertyName = args.PropertyName; selectableViewModel.Item = 4; Assert.Equal(nameof(selectableViewModel.Item), propertyName); Assert.Equal(4, selectableViewModel.Item); selectableViewModel.IsSelected = true; Assert.Equal(nameof(selectableViewModel.IsSelected), propertyName); Assert.True(selectableViewModel.IsSelected); }
public virtual ActionResult SelectCategories(string folderName, string selected, int?page, int?pageSize, string search, IEnumerable <WhereClause> whereClause , string sortField = null, string sortDir = null) { var textFolder = (TextFolder)(FolderHelper.Parse <TextFolder>(Repository, folderName).AsActual()); var singleChoice = string.Equals("True", Request.RequestContext.GetRequestValue("SingleChoice"), StringComparison.OrdinalIgnoreCase); Schema schema = new Schema(Repository, textFolder.SchemaName).AsActual(); SchemaPath schemaPath = new SchemaPath(schema); ViewData["Folder"] = textFolder; ViewData["Schema"] = schema; ViewData["Template"] = textFolder.GetFormTemplate(FormType.Selectable); ViewData["WhereClause"] = whereClause; IEnumerable <TextFolder> childFolders = new TextFolder[0]; //Skip the child folders on the embedded folder grid. if (!page.HasValue || page.Value <= 1) { childFolders = ServiceFactory.TextFolderManager.ChildFoldersWithSameSchema(textFolder).Select(it => it.AsActual()); } var query = textFolder.CreateQuery(); query = SortByField(sortField, sortDir, query); bool showTreeStyle = schema.IsTreeStyle; if (showTreeStyle) { query = query.Where(new OrElseExpression(new WhereEqualsExpression(null, "ParentUUID", null), new WhereEqualsExpression(null, "ParentUUID", ""))); } if (!string.IsNullOrEmpty(search)) { IWhereExpression exp = new FalseExpression(); foreach (var item in schema.Columns.Where(it => it.ShowInGrid)) { exp = new OrElseExpression(exp, (new WhereContainsExpression(null, item.Name, search))); } if (exp != null) { query = query.Where(exp); } showTreeStyle = false; } if (whereClause != null && whereClause.Count() > 0) { var expression = WhereClauseToContentQueryHelper.Parse(whereClause, schema, new MVCValueProviderWrapper(ValueProvider)); query = query.Where(expression); showTreeStyle = false; } var contents = query.ToPageList(page ?? 1, pageSize ?? textFolder.PageSize, textFolder.EnablePaging.HasValue ? textFolder.EnablePaging.Value : true); SelectableViewModel viewModel = new SelectableViewModel() { ShowTreeStyle = showTreeStyle, ChildFolders = childFolders, Contents = contents, SingleChoice = singleChoice }; if (Request.IsAjaxRequest()) { return(PartialView("", viewModel)); } else { IEnumerable <TextContent> selectedContents = new TextContent[0]; if (!string.IsNullOrEmpty(selected)) { string[] selectedArr = selected.Split(','); IContentQuery <TextContent> selectedQuery = textFolder.CreateQuery().DefaultOrder(); foreach (var userKey in selectedArr) { selectedQuery = selectedQuery.Or((IWhereExpression)textFolder.CreateQuery().DefaultOrder().WhereEquals("UUID", userKey).Expression); } selectedContents = selectedQuery; } viewModel.Selected = selectedContents; } return(View(viewModel)); }
public void Construct() { Assert.Throws <ArgumentNullException>(() => new SelectableViewModel(null, parent.Object, Observable.Return("Test"))); instance = new SelectableViewModel(openFolder.Object, parent.Object, Observable.Return("Test")); Assert.AreEqual("Test", instance.Path); }
public SaveLayoutCommand(SelectableViewModel viewModel) { ViewModel = viewModel; }