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)); } }
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); }
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); }
public void DeleteBuild(long id) { RunOperation("build", id, "stop"); DataCleaner.DeleteObjectsTreeRecursively <Build>(id, true); }