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));
        }
Exemple #2
0
        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));
            }
        }