private static void AddCalendarData( Sprint sprint ) { var random = new Random(); var date = (DateTime)sprint.StartDate; while (date <= sprint.EndDate) { var entry = new SprintCalendarEntry() { Sprint = sprint, HistoryDate = date, PointsRemaining = random.Next( 1, 42 ) }; ((IList<SprintCalendarEntry>)sprint.Calendar).Add( entry ); date = date.AddDays( 1 ); } }
public void Update( Sprint sprint ) { Log.Debug( "Updating Sprint Calendar" ); if (sprint.StartDate == null || sprint.EndDate == null || ((DateTime)sprint.EndDate).Date < DateTime.Now.Date) { return; } var startDate = ((DateTime)sprint.StartDate).Date; UpdateCalendar( sprint, (DateTime.Now.Date < startDate) ? startDate : DateTime.Now.Date ); Log.Debug( "Sprint Calendar Update Complete" ); }
public void Reset( Sprint sprint ) { Log.Debug( "Reset Sprint Calendar" ); ClearCalendar( sprint ); if (sprint.StartDate == null || sprint.EndDate == null) { return; } var startDate = ((DateTime)sprint.StartDate).Date; var endDate = ((DateTime)sprint.EndDate).Date; UpdateCalendar( sprint, (DateTime.Now.Date < startDate) ? startDate : (DateTime.Now.Date > endDate) ? endDate : DateTime.Now.Date ); Log.Debug( "Sprint Calendar Reset Complete" ); }
private void CreateCalendarEntry( Sprint sprint, DateTime date ) { var p = PointsRemaining( sprint, date ); var s = new SprintCalendarEntry() { Sprint = sprint, HistoryDate = date, PointsRemaining = p }; sprint.Calendar.Add( s ); }
private void ClearCalendar( Sprint sprint ) { var session = _sessionFactory.GetCurrentSession(); foreach (var item in sprint.Calendar) { session.Delete( item ); } sprint.Calendar.Clear(); }
private void UpdateCalendar( Sprint sprint, DateTime throughDate ) { GetSprintTasks( sprint ); var date = ((DateTime)sprint.StartDate); while (date < throughDate) { if (sprint.Calendar.SingleOrDefault( x => x.HistoryDate == date ) == null) { CreateCalendarEntry( sprint, date ); } date = date.AddDays( 1 ); } CreateOrUpdateCalendarEntry( sprint, throughDate ); }
private int PointsRemaining( Sprint sprint, DateTime date ) { int points = 0; foreach (var task in _sprintTasks) { var snapshot = task.PointsHistory .OrderBy( x => x.HistoryDate ) .LastOrDefault( x => x.HistoryDate <= date ); if (snapshot != null) { points += snapshot.PointsRemaining; } } return points; }
private void GetSprintTasks( Sprint sprint ) { var _session = _sessionFactory.GetCurrentSession(); _sprintTasks = _session.Query<WorkItem>() .Where( x => x.Sprint.Id == sprint.Id && x.WorkItemType.Category != WorkItemTypeCategory.BacklogItem ) .ToList(); }
private void CreateOrUpdateCalendarEntry( Sprint sprint, DateTime date ) { var entry = sprint.Calendar.SingleOrDefault( x => x.HistoryDate.Date == date.Date ); if (entry != null) { entry.PointsRemaining = PointsRemaining( sprint, date ); } else { CreateCalendarEntry( sprint, date ); } }
private int CalendarHash( Sprint sprint ) { var hash = 0; foreach (var e in sprint.Calendar) { hash += e.GetHashCode(); } return hash; }
private void AssertSprintCalendar( Sprint sprint, IEnumerable<WorkItem> tasks, int day ) { var date = ((DateTime)sprint.StartDate).AddDays( day ); var pointsRemaining = 0; foreach (var task in tasks) { pointsRemaining += task.PointsHistory.OrderBy( x => x.HistoryDate ).Last( x => x.HistoryDate <= date ).PointsRemaining; } Assert.AreEqual( pointsRemaining, sprint.Calendar.Single( x => x.HistoryDate == date ).PointsRemaining ); }
private WorkItemsListForSprintViewModel CreateTasksForSprintViewModel( Sprint sprint ) { var model = new WorkItemsListForSprintViewModel() { Id = sprint.Id, Name = sprint.Name }; using (var tx = _session.BeginTransaction()) { model.WorkItems = _session.Query<WorkItem>() .Where( x => x.Project.Id == sprint.Project.Id && x.WorkItemType.Category != WorkItemTypeCategory.BacklogItem && x.ParentWorkItem == null && (x.Sprint == null || x.Sprint.Id == sprint.Id) ) .Select( x => new SprintWorkItemViewModel() { Id = x.Id, Name = x.Name, Description = x.Description, StatusName = x.Status.Name, WorkItemTypeName = x.WorkItemType.Name, IsInTargetSprint = (x.Sprint != null) } ) .ToList(); tx.Commit(); } return model; }
private SprintEditorViewModel CreateSprintEditorViewModel( Sprint model ) { return new SprintEditorViewModel() { Id = model.Id, Name = model.Name, Description = model.Description, StatusId = model.Status.Id, StatusName = model.Status.Name, ProjectId = model.Project.Id, ProjectName = model.Project.Name, StartDate = model.StartDate, EndDate = model.EndDate, CreatedByUserId = model.CreatedByUser.Id, Capacity = model.Capacity }; }
private static void AssertModelAndViewModelPropertiesEqual( Sprint model, SprintEditorViewModel viewModel ) { Assert.AreEqual( model.Id, viewModel.Id ); Assert.AreEqual( model.Name, viewModel.Name ); Assert.AreEqual( model.Description, viewModel.Description ); Assert.AreEqual( model.Goal, viewModel.Goal ); Assert.AreEqual( model.StartDate.ToString(), viewModel.StartDate.ToString() ); Assert.AreEqual( model.EndDate.ToString(), viewModel.EndDate.ToString() ); Assert.AreEqual( model.Capacity, viewModel.Capacity ); }