示例#1
0
 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);
 }
示例#2
0
        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);
            }
        }
示例#3
0
 public object Post([FromBody] AdvSearch search)
 {
     return(searchService.GetService(ModelState, currentClient, search));
 }