private void load(CancellationToken?cancellation, IAPIProvider api, OverlayColourProvider colourProvider)
        {
            bool complete = false;

            var req = new GetChangelogBuildRequest(build.UpdateStream.Name, build.Version);

            req.Success += res =>
            {
                build    = res;
                complete = true;
            };
            req.Failure += _ => complete = true;

            api.PerformAsync(req);

            while (!complete)
            {
                if (cancellation?.IsCancellationRequested == true)
                {
                    req.Cancel();
                    return;
                }

                Thread.Sleep(10);
            }

            if (build != null)
            {
                CommentsContainer comments;

                Children = new Drawable[]
                {
                    new ChangelogBuildWithNavigation(build)
                    {
                        SelectBuild = SelectBuild
                    },
                    new Box
                    {
                        RelativeSizeAxes = Axes.X,
                        Height           = 2,
                        Colour           = colourProvider.Background6,
                        Margin           = new MarginPadding {
                            Top = 30
                        },
                    },
                    comments = new CommentsContainer()
                };

                comments.ShowComments(CommentableType.Build, build.Id);
            }
        }
        private void load(CancellationToken?cancellation, IAPIProvider api)
        {
            bool complete = false;

            var req = new GetChangelogBuildRequest(build.UpdateStream.Name, build.Version);

            req.Success += res =>
            {
                build    = res;
                complete = true;
            };
            req.Failure += _ => complete = true;

            // This is done on a separate thread to support cancellation below
            Task.Run(() =>
            {
                try
                {
                    req.Perform(api);
                }
                catch
                {
                    complete = true;
                }
            });

            while (!complete)
            {
                if (cancellation?.IsCancellationRequested == true)
                {
                    req.Cancel();
                    return;
                }

                Thread.Sleep(10);
            }

            if (build != null)
            {
                Children = new Drawable[]
                {
                    new ChangelogBuildWithNavigation(build)
                    {
                        SelectBuild = SelectBuild
                    },
                    new Comments(build)
                }
            }
            ;
        }
Exemplo n.º 3
0
        private void load(CancellationToken?cancellation, IAPIProvider api)
        {
            bool complete = false;

            var req = new GetChangelogBuildRequest(build.UpdateStream.Name, build.Version);

            req.Success += res =>
            {
                build    = res;
                complete = true;
            };
            req.Failure += _ => complete = true;

            api.PerformAsync(req);

            while (!complete)
            {
                if (cancellation?.IsCancellationRequested == true)
                {
                    req.Cancel();
                    return;
                }

                Thread.Sleep(10);
            }

            if (build != null)
            {
                Children = new Drawable[]
                {
                    new ChangelogBuildWithNavigation(build)
                    {
                        SelectBuild = SelectBuild
                    },
                    new Comments(build)
                };
            }
        }