Beispiel #1
0
		} //Summary

		#region Public Methods

        public static int GetExecutedTime(int taskId)
        {
            Logs.UpdateCurrentLogDuration();
            object workedTime = DbHelper.ExecuteScalar("Select Sum(Duration) from TasksLog where TaskId = ?",
                                         new string[] { "IdleTaskId" },
                                         new object[] { taskId });
            if (workedTime == DBNull.Value)
                return 0;
            else
                return Convert.ToInt32(workedTime);
        }
Beispiel #2
0
 public static int GetWorkedTime(DateTime initialDate, DateTime finalDate)
 {
     Logs.UpdateCurrentLogDuration();
     initialDate = initialDate.Date;
     finalDate = finalDate.Date.AddDays(1);
     object workedTime = DbHelper.ExecuteScalar("Select Sum(Duration) from TasksLog where TaskId <> ? and InsertTime>= ? and InsertTime<?",
                                  new string[] { "IdleTaskId", "InitialTime", "FinalTime" },
                                  new object[] { Tasks.IdleTask.Id, initialDate, finalDate});
     if (workedTime == DBNull.Value)
         return 0;
     else 
         return Convert.ToInt32(workedTime);
 }
Beispiel #3
0
		} //GetTaskSummary

		public static int GetWorkedDays(DateTime initialDate, DateTime finalDate)
		{
            Logs.UpdateCurrentLogDuration();
			DateTime curDate = initialDate.Date;
			int workedDays = 0;
			while(curDate<=finalDate.Date)
			{
				int count = Convert.ToInt32(DbHelper.ExecuteScalar("Select count(Id) from TasksLog where TaskId <> ? and InsertTime>= ? and InsertTime<?",
				                         new string[] {"IdleTaskId", "InitialTime", "FinalTime"},
				                         new object[] {Tasks.IdleTask.Id, curDate, curDate.AddDays(1)}));
				if(count>0)
				{
					workedDays++;
				}
				curDate = curDate.AddDays(1);
			}
			return workedDays;
		}
Beispiel #4
0
		public static ArrayList GetTaskSummary(Task parentTask, DateTime initialDate, DateTime finalDate)
		{
			Logs.UpdateCurrentLogDuration();
			ArrayList summaryList;
			ArrayList returnList = new ArrayList();

			summaryList = ExecuteTaskSummary(initialDate, finalDate);           

			while (summaryList.Count > 0)
			{
				TaskSummary currentSum = (TaskSummary) summaryList[0];
				Task currentTask = Tasks.FindById(currentSum.TaskId);
				currentSum.Description = currentTask.Description;
				currentSum.IsActive = currentTask.IsActive;
				currentSum.IconId = currentTask.IconId;
			    
				if (!currentSum.IsActive)
				{
					currentSum.TotalInactiveTime = currentSum.TotalActiveTime;
					currentSum.TotalActiveTime = 0;
				} //if

                currentSum.TotalEstimation = currentTask.Estimation;
                if (currentSum.TotalEstimation != 0)
                    currentSum.TotalTimeOverEstimation = currentSum.TotalActiveTime + currentSum.TotalInactiveTime;
                
                if (currentTask.Id != Tasks.IdleTask.Id) //ignore idle time
				{
					if (currentTask.Id != parentTask.Id)
					{
						if (currentTask.ParentId ==-1)
						{
							summaryList.Remove(currentSum);
							continue;
						} //if

						if (currentTask.ParentId == parentTask.Id)
						{
							TaskSummary retSum = FindTaskSummaryByTaskId(returnList, currentSum.TaskId);
							if (retSum == null)
							{
								returnList.Add(currentSum);
							}
							else
							{
								retSum.TotalInactiveTime += currentSum.TotalInactiveTime;
								retSum.TotalActiveTime += currentSum.TotalActiveTime;
                                retSum.TotalEstimation += currentSum.TotalEstimation;
                                retSum.TotalTimeOverEstimation += currentSum.TotalTimeOverEstimation;
							}
						}
						else
						{
						    TaskSummary currentSumParent;
                            //First look at the return list
                            currentSumParent = FindTaskSummaryByTaskId(returnList, currentTask.ParentId);
                            if (currentSumParent==null)//If not found look at the summaryList
							    currentSumParent = FindTaskSummaryByTaskId(summaryList, currentTask.ParentId);
						    
							if (currentSumParent == null) //If parent not in the summary list
							{
								currentSumParent = currentSum;
                                currentSumParent.TaskId = currentTask.ParentId; //just swith to parent task
								continue; //continue without remove the current sum from list
							}
                            else //else acum totals
							{
                                currentSumParent.TotalInactiveTime += currentSum.TotalInactiveTime;
                                currentSumParent.TotalActiveTime += currentSum.TotalActiveTime;
                                currentSumParent.TotalEstimation += currentSum.TotalEstimation;
                                currentSumParent.TotalTimeOverEstimation += currentSum.TotalTimeOverEstimation;
							}
						}
					}
					else
					{
						currentSum.Description = NOT_DETAILED;
						returnList.Add(currentSum);
					}
				} //if
				summaryList.Remove(currentSum);
			} //while
			return returnList;
		} //GetTaskSummary