public object Post(AdvSearch search) { if (!AuthorizationCheck(GenericNames.REGISTERED_VIP)) { return new HubModel(401, null); } ModelStateDictionary StateObject = new ModelStateDictionary(); if (search == null) { StateObject.AddModelError("AdvSearch", GenericError.CANNOT_BE_NULL_OR_EMPTY); throw new ManahostValidationException(StateObject); } if (!ValidateModel(search, StateObject)) { throw new ManahostValidationException(StateObject); } var ObjectSearch = SearchService.GetService(StateObject, CurrentClient, search); return new HubModel(200, ObjectSearch); }
public dynamic GetService(ModelStateDictionary validationDictionnary, Client currentClient, AdvSearch r) { if (r == null) { validationDictionnary.AddModelError(GenericNames.ADVANCED_SEARCH, GenericError.CANNOT_BE_NULL_OR_EMPTY); throw new ManahostValidationException(validationDictionnary); } Search.ToSQL(r.Search, currentClient.Id.ToString(), validationDictionnary); if (!validationDictionnary.IsValid) throw new ManahostValidationException(validationDictionnary); try { dynamic ret = null; Type to = null; Search.Infos.includes.UnionWith(r.Include); if ((ret = Repo.Search(Search.Infos)) == null) throw new ManahostValidationException(validationDictionnary); to = ManahostEntityCaching.Instance.GetTypeFromFullPath(GenericNames.DTO_PATH + Search.Infos.resource + "DTO"); if (to != null && Search.Infos.count == false) { IEnumerable<dynamic> ltmp = ret as IEnumerable<dynamic>; List<dynamic> newList = new List<dynamic>(); foreach (var item in ltmp) { newList.Add(GetMapper .Map(item, ManahostEntityCaching.Instance.GetTypeFromFullPath(GenericNames.ENTITY_PATH + Search.Infos.resource), to)); } return newList; } return ret; } catch (Exception e) { validationDictionnary.AddModelError(String.Format(GenericNames.MODEL_STATE_FORMAT, GenericNames.ADVANCED_SEARCH, "search"), GenericError.ADVANCED_SEARCH_SQL_EXCEPTION); string stacktrace = e.Message + " " + e.StackTrace + " " + (e.InnerException == null ? "" : (e.InnerException.Message + " " + e.InnerException.StackTrace)); throw new ManahostValidationException(validationDictionnary, stacktrace); } }
public object Post([FromBody] AdvSearch search) { return(searchService.GetService(ModelState, currentClient, search)); }