/// <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;
        }
示例#2
0
        /// <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;
        }