private void InitTestStatistics() { Random rnd = new Random(); Statistics = new ObservableCollection <DutyWrapper>(); List <DutyGroup> listGroup = new List <DutyGroup>(); listGroup.Add(new DutyGroup() { Name = "Programiranje" }); listGroup.Add(new DutyGroup() { Name = "Support" }); listGroup.Add(new DutyGroup() { Name = "Testiranje" }); listGroup.Add(new DutyGroup() { Name = "Dokumentacija" }); List <DutyWrapper> listDuties = new List <DutyWrapper>(); for (int i = 0; i < 100; i++) { Duty dut = new Duty("Task " + i); dut.TimeFrames.Clear(); DutyTimeFrame frame = new DutyTimeFrame(); frame.From = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 20, 0, 0); frame.To = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 21, 0, 0); dut.TimeFrames.Add(frame); int r = rnd.Next(4); dut.Group = listGroup[r]; int s = rnd.Next(5); listDuties.Add(new DutyWrapper() { Duty = dut, Number = s, Display = dut.Group.Name }); //dut.TotalTimeSpent } foreach (DutyWrapper dutWrap in listDuties) { DutyWrapper realWrapper = Statistics.FirstOrDefault(a => a.Display == dutWrap.Duty.Group.Name); if (realWrapper != null) { realWrapper.Number += dutWrap.Number; } else { Statistics.Add(dutWrap); } } }
private void PauseCurrentDuty() { if (_Iteration.Duties.Count > 0) { Duty currentlyOngoingDuty = _Iteration.Duties.FirstOrDefault(a => a.Status == (int)DutyStatus.Ongoing); if (currentlyOngoingDuty != null) { currentlyOngoingDuty.Status = (int)DutyStatus.Paused; //we must end last time frame for this duty DutyTimeFrame tf = currentlyOngoingDuty.TimeFrames.Last(); tf.To = DateTime.Now; } } }
private void FinishDuty(Duty duty) { if (duty != null) { if (duty.Status != (int)DutyStatus.Completed) { //lets close last time frame DutyTimeFrame lastTimeFrame = duty.TimeFrames.Last(); lastTimeFrame.To = DateTime.Now; duty.Status = (int)DutyStatus.Completed; } } }
private void SetAndStartTimer() { _Elapsed = CurrentDuty.TotalTimeSpent; if (_LoadedFromTemp) { DutyTimeFrame lastFrame = CurrentDuty.TimeFrames.Last(); _Elapsed = DateTime.Now - lastFrame.From; _LoadedFromTemp = false; } ElapsedTime = CurrentDuty.TotalTimeSpent.ToString("hh\\:mm\\:ss"); if (!_Timer.IsEnabled) { _Timer.Start(); } }
public void StartNewDuty() { //first we have to pause current ongoing duty PauseCurrentDuty(); Duty duty = new Duty(); //first timeframe DutyTimeFrame ttf = new DutyTimeFrame(); duty.TimeFrames.Add(ttf); duty.Name = string.Format("{0}: {1}", Lang.TaskName_Default, ttf.ToString()); duty.Status = (int)DutyStatus.Ongoing; _Iteration.Duties.Add(duty); OngoingDuty = duty; }