/// <summary> /// Retrieves the leave count. /// </summary> /// <param name="startDateTime">The start date time.</param> /// <param name="endDateTime">The end date time.</param> /// <param name="startDateType">Start type of the date.</param> /// <param name="endDateType">End type of the date.</param> /// <param name="holidays">The holidays.</param> /// <returns>The leave count</returns> public double RetrieveLeaveCount(DateTime startDateTime, DateTime endDateTime, int startDateType, int endDateType, List<DateTime> holidays) { var startDate = startDateTime.AddDays(1); var endDate = endDateTime.AddDays(-1); var dateRange = startDateTime.IsValidWorkingDate(holidays) ? (startDateType == FullDayLeaveType ? 1 : 0.5) : 0; if (startDateTime < endDateTime) { while (startDate <= endDate) { if (startDate.IsValidWorkingDate(holidays)) { dateRange++; } startDate = startDate.Date.AddDays(1); } return dateRange = endDateTime.IsValidWorkingDate(holidays) ? dateRange + (endDateType == FullDayLeaveType ? 1 : 0.5) : dateRange; } return dateRange; }
/// <summary> /// Retrieves the leave dates. /// </summary> /// <param name="startDateTime">The start date time.</param> /// <param name="endDateTime">The end date time.</param> /// <param name="startDateType">Start type of the date.</param> /// <param name="endDateType">End type of the date.</param> /// <param name="userId">The user identifier.</param> /// <returns> /// Leave Date Range /// </returns> public string RetrieveLeaveDates(DateTime startDateTime, DateTime endDateTime, int startDateType, int endDateType, int? userId) { List<DateTime> holidays = null; if (userId.HasValue) { holidays = this.lookupRepository.RetrieveHolidaysV1(DateTime.Now.Year, userId.Value).Select(holiday => holiday.Date).ToList(); } else { holidays = this.lookupRepository.RetrieveHolidays(DateTime.Now.Year).Select(holiday => holiday.Date).ToList(); } var startDate = startDateTime.AddDays(1); var endDate = endDateTime.AddDays(-1); var dateRange = startDateTime.IsValidWorkingDate(holidays) ? startDateTime.Date.ToString(DateFormat, CultureInfo.CurrentCulture) + Separator + startDateType : string.Empty; if (startDateTime < endDateTime) { while (startDate <= endDate) { if (startDate.IsValidWorkingDate(holidays)) { dateRange = dateRange + Comma + startDate.Date.ToString(DateFormat, CultureInfo.CurrentCulture) + Separator + FullDayLeaveType; } startDate = startDate.Date.AddDays(1); } return dateRange = endDateTime.IsValidWorkingDate(holidays) ? dateRange + Comma + endDateTime.Date.ToString(DateFormat, CultureInfo.CurrentCulture) + Separator + endDateType : dateRange; } return dateRange; }