public object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
        {
            if (bindingContext.ModelType != typeof(MvcSearchRequest))
            {
                return(null);
            }

            var pageId    = GetPageId(bindingContext);
            var page      = GetPage(bindingContext);
            var sort      = GetSort(bindingContext);
            var sortOrder = GetSortOrder(bindingContext);

            // Add extraneous query parameters (excludes pageId, page, sort)
            var queryParams = controllerContext.HttpContext.Request.QueryString.ToQueryParamDictionary(IgnoredQueryParams);

            // Resolve the service you want to use.
            var glassFactory = DependencyResolver.Current.GetService(typeof(IGlassInterfaceFactory)) as IGlassInterfaceFactory;

            var sitecoreContext = DependencyResolver.Current.GetService(typeof(ISitecoreContext)) as ISitecoreContext;

            var ruleParser = DependencyResolver.Current.GetService(typeof(ISearchRuleParser)) as ISearchRuleParser;

            var searchPageParser = new SearchPageParser(pageId, sitecoreContext, ruleParser);

            var result = new MvcSearchRequest(searchPageParser, glassFactory)
            {
                Page = page, PageId = pageId, SortBy = sort, SortOrder = sortOrder, QueryParameters = queryParams
            };

            return(result);
        }
Exemple #2
0
        public async Task TestParseUser(string teststr, string username, uint uid, string regdate, string title, bool zero, bool isBanned)
        {
            var usersearch = new SearchPageParser(new NetcupSearchInfo());
            var parser     = new UserParser(new NetcupUserInfo());

            var users = new ForumUserCollection(parser);

            foreach (var newUser in await usersearch.SearchUserAsync(username))
            {
                await users.ImportAsync(newUser);
            }

            var user = users.Get(username);

            Assert.Equal <uint>(uid, user.Uid);
            Assert.Equal(teststr, user.Url);
            Assert.Equal(username, user.Username);
            Assert.Equal(DateTime.ParseExact(regdate, "yyyy-MM-dd", CultureInfo.InvariantCulture), user.MemberSince);
            Assert.Equal(title, user.Title);
            Assert.True(zero ? user.PostCount == 0 : user.PostCount > 0);
            Assert.Equal(isBanned, user.IsBanned);
        }