public double GetPlanHour(string userId, DateTime startDate, DateTime endDate) { var planStartDate = PlanDateRange.StartDate; var planEndDate = PlanDateRange.EndDate; if (Status == Status.Done) { planEndDate = ActualDateRange.EndDate; } var calStartDate = planStartDate < startDate ? startDate : planStartDate; var calEndDate = planEndDate < endDate ? planEndDate : endDate; if (PlanHours.IsEmpty() || !PlanHours.ContainsKey(userId)) { return(0); } if (DateTimeUtil.GetWorkingDays(planStartDate, planEndDate) == 0) { return(0); } if (DateTimeUtil.GetWorkingDays(calStartDate, calEndDate) == 0) { return(0); } return(Math.Round(PlanHours[userId] * DateTimeUtil.GetWorkingDays(calStartDate, calEndDate) / DateTimeUtil.GetWorkingDays(planStartDate, planEndDate), 2)); }
public double GetTotalPlanHour() { if (!PlanHours.IsEmpty()) { return(PlanHours.Sum(o => o.Value)); } return(0); }