protected override object SearchObjects(AObjects aObjects) { var request = new Request.PacketSearch(); request.ApiKey = Guid.Parse(Context.CurrentUser.UserName); try { request.Page = Request.Query.page; } catch (Exception) { request.Page = 1; } try { request.Size = Request.Query.size; } catch (Exception) { request.Size = 0; } try { request.MaxResults = Request.Query.maxResults; } catch (Exception) { request.MaxResults = 20; } request.SearchTerm = Request.Query.searchTerm; request.ShowOfflineBots = Request.Query.showOfflineBots; request.Sort = Request.Query.sort; request.SortBy = Request.Query.sortBy; if (string.IsNullOrEmpty(request.SortBy)) { request.SortBy = "Name"; } if (string.IsNullOrEmpty(request.Sort)) { request.Sort = "asc"; } var results = Validate(request); if (results.Count > 0) { return(CreateErrorResponseAndUpdateApiKey((from result in results select result.ErrorMessage).Implode(", "))); } return(ExecuteSearchRequest(request)); }
protected override object SearchObjects(AObjects aObjects) { var request = new Request.PacketSearch(); request.ApiKey = Guid.Parse(Context.CurrentUser.UserName); try { request.Page = Request.Query.page; } catch (Exception) { request.Page = 1; } try { request.Size = Request.Query.size; } catch (Exception) { request.Size = 0; } try { request.MaxResults = Request.Query.maxResults; } catch (Exception) { request.MaxResults = 20; } request.SearchTerm = Request.Query.searchTerm; request.ShowOfflineBots = Request.Query.showOfflineBots; request.Sort = Request.Query.sort; request.SortBy = Request.Query.sortBy; if (string.IsNullOrEmpty(request.SortBy)) { request.SortBy = "Name"; } if (string.IsNullOrEmpty(request.Sort)) { request.Sort = "asc"; } var results = Validate(request); if (results.Count > 0) { return CreateErrorResponseAndUpdateApiKey((from result in results select result.ErrorMessage).Implode(", ")); } return ExecuteSearchRequest(request); }
object ExecuteSearchRequest(Request.PacketSearch request) { try { var result = new Result.Objects(); var results = Webserver.Search.Packets.GetResults(new XG.Model.Domain.Search { Name = request.SearchTerm, Size = request.Size }, request.ShowOfflineBots, (request.Page - 1) * request.MaxResults, request.MaxResults, request.SortBy, request.Sort == "desc"); result.Results = Helper.XgObjectsToNancyObjects(from packets in results.Packets from packet in packets.Value select packet).Cast <Nancy.Api.Model.Domain.Packet>(); result.ResultCount = results.Total; return(CreateSuccessResponseAndUpdateApiKey(result)); } catch (Exception ex) { return(CreateErrorResponseAndUpdateApiKey(ex.Message)); } }