public static coreModel.SearchCriteria ToCoreModel(this webModel.SearchCriteria criteria) { var retVal = new coreModel.SearchCriteria(); retVal.InjectFrom(criteria); return(retVal); }
public static webModel.SearchCriteria ToWebModel(this coreModel.SearchCriteria criteria) { var retVal = new webModel.SearchCriteria(); retVal.InjectFrom(criteria); return retVal; }
public bool BindModel(System.Web.Http.Controllers.HttpActionContext actionContext, ModelBindingContext bindingContext) { if (bindingContext.ModelType != typeof(SearchCriteria)) { return false; } var qs = HttpUtility.ParseQueryString(actionContext.Request.RequestUri.Query as string); var result = new SearchCriteria(); result.Keyword = qs["q"].EmptyToNull(); result.OrganizationId = qs["organization"].EmptyToNull(); result.Count = qs["count"].TryParse(20); result.Start = qs["start"].TryParse(0); bindingContext.Model = result; return true; }
public IHttpActionResult Search([ModelBinder(typeof(SearchCriteriaBinder))] webModel.SearchCriteria criteria) { var result = _contactSearchService.Search(criteria.ToCoreModel()); var retVal = new webModel.SearchResult(); var start = criteria.Start; var count = criteria.Count; // all organizations var organizations = result.Organizations.Select(x => x.ToWebModel()); var contacts = result.Contacts.Select(x => x.ToWebModel()); retVal.TotalCount = organizations.Count() + result.TotalCount; retVal.Members.AddRange(organizations.Skip(start).Take(count)); count -= organizations.Count(); retVal.Members.AddRange(contacts.Take(count)); return(Ok(retVal)); }