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);
        }
Exemple #2
0
        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);
        }
Exemple #5
0
        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);
 }
Exemple #7
0
 public SaveLayoutCommand(SelectableViewModel viewModel)
 {
     ViewModel = viewModel;
 }