protected override void CleanData(object sender, ElapsedEventArgs eventArgs)
        {
            base.CleanData(sender, eventArgs);


            var buildInBranches =
                BuildRepository.Instance.Find(string.Format("WHERE StartDate IS NOT NULL AND StartDate < '{0}'",
                                                            (DateTime.Now - SchedulerInfo.SchedulePeriod).ToString("yyyy-MM-dd HH:mm:ss")))
                .GroupBy(item => item.BranchId);

            foreach (var builds in buildInBranches)
            {
                var buildsForRemoving = new List <Build>();

                foreach (var build in builds)
                {
                    // if build has any IsLastPassed screenshot - we cannot delete this build, because it contains in BaseLine
                    if (!ScreenShotRepository.Instance.FindByBuildId(build.Id)
                        .Any(screenshot => screenshot.IsLastPassed))
                    {
                        buildsForRemoving.Add(build);
                    }
                }

                buildsForRemoving.Skip(SchedulerInfo.HistoryItemsNumberToPreserve)
                .Each(item => DataCleaner.DeleteObjectsTreeRecursively <Build>(item.Id, true));
            }
        }
Beispiel #2
0
        public void DeleteBranch(long id)
        {
            var builds = GetBuilds(id);

            // Stop all builds
            builds.Each(item => RunOperation("build", item.Id, "stop"));
            DataCleaner.DeleteObjectsTreeRecursively <Branch>(id, true);
        }
Beispiel #3
0
        public void DeleteProject(long id)
        {
            var branches = GetBranches(id);
            var builds   = new List <long>();

            branches.Each(item => builds.AddRange(item.Builds.Keys));

            // Stop all builds
            builds.Each(buildId => RunOperation("build", buildId, "stop"));
            DataCleaner.DeleteObjectsTreeRecursively <Project>(id, true);
        }
Beispiel #4
0
 public void DeleteBuild(long id)
 {
     RunOperation("build", id, "stop");
     DataCleaner.DeleteObjectsTreeRecursively <Build>(id, true);
 }