public void LoadState(SearchPageState state)
        {
            if (null != state.QueryParameter)
            {
                QueryParameter = state.QueryParameter;
            }

            if (!String.IsNullOrWhiteSpace(state.SearchResultInfo))
            {
                SearchResultInfo = state.SearchResultInfo;
            }

            if (null != state.DocumentReferencesList)
            {
                var resultTemp = new SearchResult()
                {
                    Hits               = state.Hits,
                    Page               = state.Page,
                    PageSize           = state.PageSize,
                    DocumentReferences = state.DocumentReferencesList
                };

                DocumentReferences = new RisQueryWithIncrementalLoading(
                    QueryParameter,
                    resultTemp,
                    IncrementalLoadingStarted, IncrementalLoadingCompleted, IncrementalLoadingFailed);

                UpdateSearchResultInfo();
            }
        }
        public SearchPageState SaveState()
        {
            var state = new SearchPageState()
            {
                SearchResultInfo = this.SearchResultInfo
            };

            if (null != QueryParameter)
            {
                state.QueryParameter = QueryParameter;
            }

            if (null != DocumentReferences)
            {
                state.DocumentReferencesList = DocumentReferences.ToList();
                state.Hits     = DocumentReferences.Hits;
                state.Page     = DocumentReferences.Page;
                state.PageSize = DocumentReferences.PageSize;
            }

            return(state);
        }