/// <summary>Initializes a new instance of the <see cref="BrowserQueryBuilderViewModel" /> class.</summary>
        /// <param name="collectionQueryManager">The collection query manager.</param>
        public BrowserQueryBuilderViewModel(CollectionQueryManagerService collectionQueryManager)
            : this(TypeFactory.Default.CreateInstance <CollectionQuery>(), collectionQueryManager)
        {
            _editMode = false;

            CurrentQuery.Title = $"New Query {DateTime.Now}";
        }
        /// <summary>Initializes a new instance of the <see cref="BrowserQueryViewerViewModel" /> class.</summary>
        /// <param name="pleaseWaitService">The please wait service.</param>
        /// <param name="collectionQueryManagerService">The collection query manager service.</param>
        public BrowserQueryViewerViewModel(
            IPleaseWaitService pleaseWaitService,
            CollectionQueryManagerService collectionQueryManagerService) : base(false)
        {
            Argument.IsNotNull(() => pleaseWaitService);
            Argument.IsNotNull(() => collectionQueryManagerService);

            _pleaseWaitService             = pleaseWaitService;
            _collectionQueryManagerService = collectionQueryManagerService;

            CollectionQueries = _collectionQueryManagerService.CollectionQueries;
            SelectedQuery     = Queries.FirstOrDefault();

            AddQueryCommand = new Command(OnAddQueryCommandExecute, tag: "AddQuery");
        }
        /// <summary>Initializes a new instance of the <see cref="BrowserQueryBuilderViewModel" /> class.</summary>
        /// <param name="currentQuery">Query to edit.</param>
        /// <param name="collectionQueryManager">The collection query manager.</param>
        public BrowserQueryBuilderViewModel(
            CollectionQuery currentQuery, CollectionQueryManagerService collectionQueryManager)
            : base(false)
        {
            Argument.IsNotNull(() => collectionQueryManager);
            Argument.IsNotNull(() => currentQuery);

            _collectionQueryManager = collectionQueryManager;

            CurrentQuery    = currentQuery;
            RadioController = new RadioController(this);

            _filterBuilderViewModel =
                TypeFactory.Default.CreateInstanceWithParametersAndAutoCompletion(
                    typeof(FilterBuilderViewModel), CurrentQuery) as FilterBuilderViewModel;

            SaveCommand   = new TaskCommand(OnSaveCommandExecuteAsync, OnSaveCommandCanExecute);
            CancelCommand = new Command(OnCancelCommandExecute);
        }