public void Setup() { var milestoneBuilder = new MilestoneBuilder(); var today = DateTime.Now; _milestone = milestoneBuilder.BuildMileStone(today.Date.AddDays(-5), today.Date.AddDays(+10), 1); var personBuilder = new PersonBuilder(); _persons = new List<Person>(4); _persons.Add(personBuilder.BuildPerson("Ivan", 1)); _persons.Add(personBuilder.BuildPerson("John", 2)); _persons.Add(personBuilder.BuildPerson("Igor", 3)); _persons.Add(personBuilder.BuildPerson("Sasha", 4)); var cases = new List<Case>(); var caseBuilder = new CaseBuilder(); var person = _persons[0]; cases.Add(caseBuilder.BuildCase(person, 10, 2, today.AddDays(-4), 1)); cases.Add(caseBuilder.BuildCase(person, 10, 0, null, 2)); cases.Add(caseBuilder.BuildCase(person, 10, 8, today.AddDays(-3), 3)); person = _persons[1]; cases.Add(caseBuilder.BuildCase(person, 5, 0, null, 4)); cases.Add(caseBuilder.BuildCase(person, 5, 5, today.AddDays(-1), 5)); cases.Add(caseBuilder.BuildCase(person, 5, 3, today, 6)); person = _persons[2]; cases.Add(caseBuilder.BuildCase(person, 15, 8, today.AddDays(-4), 7)); cases.Add(caseBuilder.BuildCase(person, 15, 10, today.AddDays(-3), 8)); cases.Add(caseBuilder.BuildCase(person, 150, 9, today.AddDays(-2), 9)); person = _persons[3]; cases.Add(caseBuilder.BuildCase(person, 5, 0, null, 10)); cases.Add(caseBuilder.BuildCase(person, 5, 0, null, 11)); cases.Add(caseBuilder.BuildCase(person, 5, 0, null, 12)); _caseSet = new CaseSet() {Cases = cases, Milestone = _milestone}; _isScheduleLoadedByAdmin = false; _schedule = new FbSchedule(); }
public static DateTime? CodeFreezeCalculate(int projectId, Milestone milestone, int? projectParentCaseId, string name, Regex regEx) { if (DateUtils.GetCodeFreezeFromName(name, regEx) != null) { return DateUtils.GetCodeFreezeFromName(name, regEx); } if (milestone.DateStart == null || milestone.DateRelease == null || projectParentCaseId !=null) { return null; } DateTime codeFreeze; var dateReleaseMinusStart = (TimeSpan)(milestone.DateRelease - milestone.DateStart); var percentage = 1.0 - ((double)FbAccountContext.Current.Settings.QaPercentage / 100); if (!FbAccountContext.Current.Settings.AllowQaEstimates) { var calculatedTimeDifference = new TimeSpan( (int)(dateReleaseMinusStart.Days * percentage), (int)(dateReleaseMinusStart.Hours * percentage), (int)(dateReleaseMinusStart.Minutes * percentage), (int)(dateReleaseMinusStart.Seconds * percentage)); codeFreeze = (DateTime)(milestone.DateStart + calculatedTimeDifference); } else { IList<Case> cases = FogBugzGateway.GetCases(projectId, milestone.Id); int totalQaEstimate = cases.Sum(@case => @case.TestEstimate.GetValueOrDefault(0)); var timeSpan = new TimeSpan(0, 0, (int)totalQaEstimate, 0); var calculatedTimeDifference = dateReleaseMinusStart - timeSpan; codeFreeze = (DateTime)(milestone.DateStart + calculatedTimeDifference); } return codeFreeze; }
public static string GetMilestonesQueryPart(Milestone milestone) { string searchQuery = ""; if (milestone != null) searchQuery = String.Format("milestone:\"{0}\"", milestone.Name); else { var milestones = GetMilestones(); var milestoneQueryParts = new List<string>(); foreach (var fixFor in milestones) { milestoneQueryParts.Add(String.Format("milestone:\"{0}\"", fixFor.Name)); } var milestonesQuery = "(" + String.Join(" OR ", milestoneQueryParts) + ")"; searchQuery += milestonesQuery; } return searchQuery; }
public static string GetMilestoneQueryPart(Milestone milestone) { return GetMilestoneQueryPart(milestone.Id); }
public static Milestone GetMilestone(int milestoneId) { FixFor fixFor = GetMilestones().SingleOrDefault(m => m.Index == milestoneId); if (fixFor == null) return null; var milestone = new Milestone(fixFor); return milestone; }
public Milestone BuildMileStone(DateTime startDate, DateTime releaseDate, int id) { var fixFor = new FixFor() {Name ="Milestone 1.0", DateRelease = releaseDate, DateStart = startDate, Index = id}; var milestone = new Milestone(fixFor) {DateRelease = releaseDate}; return milestone; }