Esempio n. 1
0
        private void CreateProjectDeployments(IList <IDeployment> deployments)
        {
            Deployments = new List <IDeployment>();

            foreach (var deployment in deployments)
            {
                if (Releases.Any(x => x.Id.Contains(deployment.ReleaseId)) && Environments.Any(x => x.Id.Contains(deployment.EnvironmentId)))
                {
                    Deployments.Add(new Deployment(deployment));
                }
            }
        }
Esempio n. 2
0
        public async Task OnLoadedAsync()
        {
            if (_checkForUpdates)
            {
                await _updateManager.CheckForUpdatesAsync();
            }

            var releases = _updateManager.Releases
                           .Where(r => _settings.IncludePrereleaseUpdates || !r.IsPrerelease)
                           .OrderByDescending(r => r.Version)
                           .SkipWhile(r => String.IsNullOrWhiteSpace(r.DownloadUrl)).ToList();

            releases.ForEach(Releases.Add);

            IsUpdating = false;
            IsUpToDate = Releases.All(r => !r.IsNew);
            CanUpdate  = Releases.Any(r => r.IsNew);
        }
Esempio n. 3
0
 public bool HasReleases()
 {
     return(Releases.Any());
 }
Esempio n. 4
0
 public bool HasDeltaReleases()
 {
     return(Releases.Any(x => x.IsDelta));
 }
Esempio n. 5
0
        public async Task RunAnalysis()
        {
            // prepare commits
            if ((_configuration.DataFlags & DataFlags.Commits) == DataFlags.Commits)
            {
                // prepare db
                await _mongoProxy.TruncateCommits();

                // read all commit pages
                var commits = new List <Commit>();
                _gitProxy.OnCommitQueryNext += async(sender, pagedCommits) =>
                {
                    commits.AddRange(pagedCommits);
                    await _mongoProxy.InsertCommits(pagedCommits);
                };

                // run
                await _gitProxy.GetCommits();

                Commits = commits;
            }
            else
            {
                Commits = await _mongoProxy.GetCommits();
            }

            // prepare releases
            if ((_configuration.DataFlags & DataFlags.Releases) == DataFlags.Releases)
            {
                Releases = await _gitProxy.GetReleases();

                if (Releases.Any())
                {
                    await _mongoProxy.RecacheReleases(Releases);
                }
            }
            else
            {
                Releases = await _mongoProxy.GetReleases();
            }

            // prepare stats
            if ((_configuration.DataFlags & DataFlags.Statistics) == DataFlags.Statistics)
            {
                Statistics = await _gitProxy.GetStatistics();

                if (Statistics.Any())
                {
                    await _mongoProxy.RecacheStatistics(Statistics);
                }
            }
            else
            {
                Statistics = await _mongoProxy.GetStatistics();
            }

            // prepare users
            if ((_configuration.DataFlags & DataFlags.Users) == DataFlags.Users)
            {
                Users = await _gitProxy.GetUsers(Statistics);

                if (Users.Any())
                {
                    await _mongoProxy.RecacheUsers(Users);
                }
            }
            else
            {
                Users = await _mongoProxy.GetUsers();
            }

            // read aliases
            var aliases = _aliasReader.Aliases;

            // replace aliased authors
            if (aliases.Any())
            {
                foreach (var commit in Commits)
                {
                    foreach (var alias in aliases)
                    {
                        if (alias.Value.Contains(commit.Author))
                        {
                            commit.UpdateAuthor(alias.Key);
                        }
                    }
                }
            }

            // run metric calculation tasks
            var tasks = new List <Task>
            {
                Metrics.Centrality(Commits),
                Task.Run(() => Metrics.NoD(Commits)),
                Task.Run(() => Metrics.TAP(Commits)),
                Task.Run(() => Metrics.NoC(Releases, Commits)),
                Task.Run(() => Metrics.LoC(Statistics)),
                Metrics.GL(_googleProxy, Users),
                Task.Run(() => Metrics.NAC(Releases, Commits)),
            };

            // wait for completion
            await Task.WhenAll(tasks);
        }
 public bool IsLatestVersionOfRelease(Guid releaseId)
 {
     return(!Releases.Any(r => r.PreviousVersionId == releaseId && r.Id != releaseId));
 }