Beispiel #1
0
        public IActionResult Pull([FromBody] PullRequest req)
        {
            try
            {
                return(this.PolicyService.InvokePolicy.Execute(
                           () =>
                {
                    using (var session = this.DatabaseService.Database.CreateSession())
                    {
                        var user = session.GetUser();
                        var response = new PullResponseBuilder(user);

                        if (req.P != null)
                        {
                            foreach (var p in req.P)
                            {
                                var pull = p.Load(session);

                                if (pull.Object != null)
                                {
                                    var pullInstantiate = new PullInstantiate(session, pull, user, this.FetchService);
                                    pullInstantiate.Execute(response);
                                }
                                else
                                {
                                    var pullExtent = new PullExtent(session, pull, user, this.ExtentService, this.FetchService);
                                    pullExtent.Execute(response);
                                }
                            }
                        }

                        return this.Ok(response.Build());
                    }
                }));
            }
            catch (Exception e)
            {
                this.Logger.LogError(e, "Exception");
                return(this.StatusCode(500, e.Message));
            }
        }
Beispiel #2
0
        public ActionResult <PullResponse> Post([FromBody] PullRequest request) =>
        this.PolicyService.InvokePolicy.Execute(
            () =>
        {
            try
            {
                using (var session = this.DatabaseService.Database.CreateSession())
                {
                    var acls     = new WorkspaceAccessControlLists(session.GetUser());
                    var response = new PullResponseBuilder(acls, this.TreeService);

                    if (request.p != null)
                    {
                        foreach (var p in request.p)
                        {
                            var pull = p.Load(session);

                            if (pull.Object != null)
                            {
                                var pullInstantiate = new PullInstantiate(session, pull, acls, this.FetchService);
                                pullInstantiate.Execute(response);
                            }
                            else
                            {
                                var pullExtent = new PullExtent(session, pull, acls, this.ExtentService, this.FetchService);
                                pullExtent.Execute(response);
                            }
                        }
                    }

                    return(response.Build());
                }
            }
            catch (Exception e)
            {
                this.Logger.LogError(e, "PullRequest {request}", request);
                throw;
            }
        });
Beispiel #3
0
        public Task <PullResponse> Pull(PullRequest request)
        {
            try
            {
                using (var session = this.Database.CreateSession())
                {
                    var acls     = new WorkspaceAccessControlLists(session.GetUser());
                    var response = new PullResponseBuilder(acls, this.TreeService);

                    if (request.P != null)
                    {
                        foreach (var p in request.P)
                        {
                            var pull = p.Load(session);

                            if (pull.Object != null)
                            {
                                var pullInstantiate = new PullInstantiate(session, pull, acls, this.FetchService);
                                pullInstantiate.Execute(response);
                            }
                            else
                            {
                                var pullExtent = new PullExtent(session, pull, acls, this.ExtentService, this.FetchService);
                                pullExtent.Execute(response);
                            }
                        }
                    }

                    return(Task.FromResult(response.Build()));
                }
            }
            catch (Exception e)
            {
                this.Logger.LogError(e, "PullRequest {request}", request);
                throw;
            }
        }