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); }
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); }