Inheritance: AObject
コード例 #1
0
ファイル: Packets.cs プロジェクト: lformella/xdcc-grabscher
        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);
        }
コード例 #2
0
ファイル: ApiModule.cs プロジェクト: lformella/xdcc-grabscher
        protected void InitializeDelete(AObjects aObjects, string aPath)
        {
            this.RequiresAuthentication();

            Delete["/" + aPath + "/{guid:guid}", true] = async(_, ct) =>
            {
                try
                {
                    var obj = aObjects.WithGuid(Guid.Parse(_.guid));
                    if (obj != null)
                    {
                        obj.Parent.Remove(obj);
                        return CreateSuccessResponseAndUpdateApiKey(_.format);
                    }
                    return CreateErrorResponseAndUpdateApiKey(HttpStatusCode.NotFound);
                }
                catch (Exception ex)
                {
                    return CreateErrorResponseAndUpdateApiKey(ex.Message);
                }
            };
        }
コード例 #3
0
ファイル: ApiModule.cs プロジェクト: lformella/xdcc-grabscher
        protected void InitializeGetAll(AObjects aObjects, string aPath)
        {
            this.RequiresAuthentication();

            Get["/" + aPath] = _ =>
            {
                try
                {
                    return SearchObjects(aObjects);
                }
                catch (Exception ex)
                {
                    return CreateErrorResponseAndUpdateApiKey(ex.Message);
                }
            };
        }
コード例 #4
0
ファイル: ApiModule.cs プロジェクト: lformella/xdcc-grabscher
 protected virtual object SearchObjects(AObjects aObjects)
 {
     var objs = Helper.XgObjectsToNancyObjects(aObjects.Children);
     var result = new Result.Objects { Results = objs, ResultCount = objs.Count() };
     return CreateSuccessResponseAndUpdateApiKey(result);
 }
コード例 #5
0
ファイル: ApiModule.cs プロジェクト: lformella/xdcc-grabscher
        protected void InitializeGet(AObjects aObjects, string aPath)
        {
            this.RequiresAuthentication();

            Get["/" + aPath + "/{guid:guid}", true] = async(_, ct) =>
            {
                try
                {
                    var obj = aObjects.WithGuid(Guid.Parse(_.guid));
                    if (obj != null)
                    {
                        return CreateSuccessResponseAndUpdateApiKey(Helper.XgObjectToNancyObject(obj));
                    }
                    return CreateErrorResponseAndUpdateApiKey(HttpStatusCode.NotFound);
                }
                catch (Exception ex)
                {
                    return CreateErrorResponseAndUpdateApiKey(ex.Message);
                }
            };
        }