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); }
/// <summary> /// Метод, преобразующий текущий класс в объект класса SampleGrid /// </summary> /// <returns>Объект класса SampleGrid с данными текущего класса</returns> public SampleGrid toSample() { SampleGrid sg = new SampleGrid(); sg.P1 = Id.ToString(); sg.P2 = Name; sg.P3 = Type.Name; sg.P4 = Level.Name; DateTime start = new DateTime(); start.AddYears(DateTime.Today.Year); start.AddMonths(DateTime.Today.Month); List <Session> sessions = MTSystem.LoadSessionsByGroupIdByTime(Id, start, DateTime.Today.Add(new TimeSpan(23, 59, 59))); if (sessions[0] != null) { int count = 0; for (int i = 0; i < sessions.Count; i++) { count += sessions[i].Duration; } RealHours = count / 60; } else { RealHours = 0; } sg.P5 = RealHours.ToString(); sg.P6 = PlanHours.ToString(); List <Student> st = MTSystem.LoadStudents(StudentIds); if (st != null) { int count = 0; for (int i = 0; i < st.Count; i++) { if (st[i].checkGroupId(Id)) { count++; } } sg.P7 = count.ToString(); } else { sg.P7 = "0"; } return(sg); }