Ejemplo n.º 1
0
        public DateTime GetSolutionDateAfterPause(long remind, bool isResolution,
                                                  ResponseLabelTermCalculationData termCalculationData = null)
        {
            DateTime currentDateTime = UserConnection.CurrentUser.GetCurrentDateTime();

            if (TermCalculationData == null)
            {
                return(currentDateTime);
            }

            bool isCalendarDays = isResolution
                                ? TermCalculationData.IsResolutionInCalendarDays
                                : TermCalculationData.IsResponseInCalendarDays;

            var remindTimeSpan = new TimeSpan(remind);

            if (isCalendarDays)
            {
                return(currentDateTime + remindTimeSpan);
            }

            return(TermCalculator == null
                                ? currentDateTime
                                : TermCalculator.CalculateByCalendar(currentDateTime, remindTimeSpan));
        }
Ejemplo n.º 2
0
        public TimeSpan GetRemindTimeSpan(DateTime toDate, bool isResolution,
                                          ResponseLabelTermCalculationData termCalculationData = null)
        {
            TimeSpan workingTimeSpan = TimeSpan.Zero;

            if (TermCalculationData == null || toDate == DateTime.MinValue)
            {
                return(workingTimeSpan);
            }

            DateTime userCurrentDateTIme = UserConnection.CurrentUser.GetCurrentDateTime();
            bool     isCalendarDays      = isResolution
                                ? TermCalculationData.IsResolutionInCalendarDays
                                : TermCalculationData.IsResponseInCalendarDays;

            if (isCalendarDays)
            {
                workingTimeSpan = toDate - userCurrentDateTIme;
            }
            else
            {
                var termCalculatorActions = new TermCalculatorActions(UserConnection,
                                                                      TermCalculationData.CalendarId);
                var timeZoneConvertor = new TimeZoneConvertor(TermCalculationData.CalendarTimeZone,
                                                              UserConnection.CurrentUser.TimeZone);
                DateTime calendarUserCurrentDateTime = timeZoneConvertor.ToCalendarDateTime(userCurrentDateTIme);
                DateTime calendarResponseDate        = timeZoneConvertor.ToCalendarDateTime(toDate);
                workingTimeSpan = termCalculatorActions.GetWorkingTimeSpan(calendarUserCurrentDateTime, calendarResponseDate);
            }

            return(workingTimeSpan);
        }