public virtual async Task <SearchQuery> Save([FromBody] SearchQuery query) { query.CheckValid(); query.DbName = SearchQueryHelper.GetHash(query.FriendlyName); query.SetProject(GetTeam()); query.RegisteredBy = GetEmail(); query.RegisteredByFriendlyName = GetFriendlyName(); var manager = query.SearchIndex == IndexTypeName.Business ? _businessFilterManager : _personFilterManager; manager.Init(query.Filters); query.SelectedFilters = manager.GetSelectedFilters().ToList(); var filters = query.Filters; query.Filters = null; if (!query.SelectedFilters.Any() && query.SearchTerm.IsEmpty()) { throw new ArgumentException("No selected filters was found"); } var result = await _queryDb.Post(query); query.Filters = filters; return(query); }