public PatientAccessHistoryViewModel(
            IAsyncRequestDispatcherFactory asyncRequestDispatcherFactory,
            IUserDialogService userDialogService,
            IAccessControlManager accessControlManager,
            ICommandFactory commandFactory)
            : base(accessControlManager, commandFactory)
        {
            _asyncRequestDispatcherFactory = asyncRequestDispatcherFactory;
            _userDialogService             = userDialogService;

            var commandFactoryHelper = CommandFactoryHelper.CreateHelper(this, commandFactory);

            SearchCommand = commandFactoryHelper.BuildDelegateCommand(() => SearchCommand, ExecuteSearch);

            ResetCommand = commandFactoryHelper.BuildDelegateCommand(() => ResetCommand, ExecuteReset);

            _defaultAccessType = new LookupValueDto {
                Name = "None"
            };
            _accessType = _defaultAccessType;

            PageSizeList = new List <int> {
                100, 125, 150, 175, 200
            };
            _pageSize       = 100;
            _totalItemCount = 0;
            _pageIndex      = 0;

            var lookupValueNames  = new[] { PatientAccessEventType };
            var requestDispatcher = _asyncRequestDispatcherFactory.CreateAsyncRequestDispatcher();

            foreach (var lookupValueName in lookupValueNames)
            {
                requestDispatcher.AddLookupValuesRequest(lookupValueName);
            }
            IsLoading = true;
            requestDispatcher.ProcessRequests(HandleGetLookupvaluesCompleted, HandleGetLookupValuesException);

            _defaultGroupingDescription  = new CustomPropertyGroupDescription(string.Empty, "None");
            _groupingDescriptions        = new ObservableCollection <CustomPropertyGroupDescription> ();
            _selectedGroupingDescription = _defaultGroupingDescription;
            _groupingDescriptions.Add(_selectedGroupingDescription);

            InitializeGroupingDescriptions();
        }
        public PatientAccessHistoryViewModel(
            IAsyncRequestDispatcherFactory asyncRequestDispatcherFactory,
            IUserDialogService userDialogService,
            IAccessControlManager accessControlManager,
            ICommandFactory commandFactory )
            : base(accessControlManager, commandFactory)
        {
            _asyncRequestDispatcherFactory = asyncRequestDispatcherFactory;
            _userDialogService = userDialogService;

            var commandFactoryHelper = CommandFactoryHelper.CreateHelper ( this, commandFactory );

            SearchCommand = commandFactoryHelper.BuildDelegateCommand ( () => SearchCommand, ExecuteSearch );

            ResetCommand = commandFactoryHelper.BuildDelegateCommand ( () => ResetCommand, ExecuteReset );

            _defaultAccessType = new LookupValueDto { Name = "None" };
            _accessType = _defaultAccessType;

            PageSizeList = new List<int> { 100, 125, 150, 175, 200 };
            _pageSize = 100;
            _totalItemCount = 0;
            _pageIndex = 0;

            var lookupValueNames = new[] { PatientAccessEventType };
            var requestDispatcher = _asyncRequestDispatcherFactory.CreateAsyncRequestDispatcher ();
            foreach ( var lookupValueName in lookupValueNames )
            {
                requestDispatcher.AddLookupValuesRequest ( lookupValueName );
            }
            IsLoading = true;
            requestDispatcher.ProcessRequests ( HandleGetLookupvaluesCompleted, HandleGetLookupValuesException );

            _defaultGroupingDescription = new CustomPropertyGroupDescription ( string.Empty, "None" );
            _groupingDescriptions = new ObservableCollection<CustomPropertyGroupDescription> ();
            _selectedGroupingDescription = _defaultGroupingDescription;
            _groupingDescriptions.Add ( _selectedGroupingDescription );

            InitializeGroupingDescriptions ();
        }