Ejemplo n.º 1
0
        internal static CalendarSettings CreateForSession(UserContext userContext)
        {
            if (userContext == null)
            {
                throw new ArgumentNullException("userContext");
            }
            CalendarSettings result;

            if (CalendarSettings.LoadFromMailbox(userContext.MailboxSession, userContext.CanActAsOwner, out result) != CalendarSettings.LoadResult.Success)
            {
                ExTraceGlobals.CalendarCallTracer.TraceDebug(0L, "Unable to load Calendar Settings User Configuration object");
                result = new CalendarSettings(15, true, false, true, false);
            }
            return(result);
        }
Ejemplo n.º 2
0
        private static CalendarSettings.LoadResult LoadFromMailbox(MailboxSession mailboxSession, bool canActAsOwner, out CalendarSettings calendarSettings)
        {
            if (!canActAsOwner)
            {
                calendarSettings = null;
                return(CalendarSettings.LoadResult.AccessDenied);
            }
            CalendarConfiguration calendarConfiguration;

            try
            {
                using (CalendarConfigurationDataProvider calendarConfigurationDataProvider = new CalendarConfigurationDataProvider(mailboxSession))
                {
                    calendarConfiguration = (CalendarConfiguration)calendarConfigurationDataProvider.Read <CalendarConfiguration>(null);
                }
                if (calendarConfiguration == null)
                {
                    string message = string.Format("Unable to load Calendar configuration object for mailbox {0}", mailboxSession.MailboxOwner.LegacyDn);
                    ExTraceGlobals.CalendarCallTracer.TraceDebug(0L, message);
                    calendarSettings = null;
                    return(CalendarSettings.LoadResult.Corrupt);
                }
            }
            catch (StoragePermanentException ex)
            {
                string message2 = string.Format("Unable to load Calendar configuration object for mailbox. Exception {0}", ex.Message);
                ExTraceGlobals.CalendarCallTracer.TraceDebug(0L, message2);
                calendarSettings = null;
                return(CalendarSettings.LoadResult.Missing);
            }
            catch (StorageTransientException ex2)
            {
                string message3 = string.Format("Unable to load Calendar configuration object for mailbox. Exception {0}", ex2.Message);
                ExTraceGlobals.CalendarCallTracer.TraceDebug(0L, message3);
                calendarSettings = null;
                return(CalendarSettings.LoadResult.Missing);
            }
            calendarSettings = new CalendarSettings(CalendarSettings.ValidateReminderInterval(calendarConfiguration.DefaultReminderTime), calendarConfiguration.AddNewRequestsTentatively, calendarConfiguration.ProcessExternalMeetingMessages, calendarConfiguration.RemoveOldMeetingMessages, calendarConfiguration.RemoveForwardedMeetingNotifications);
            return(CalendarSettings.LoadResult.Success);
        }