Пример #1
0
 public void SavePublishedOptions()
 {
     using (MailboxCalendarFolderDataProvider mailboxCalendarFolderDataProvider = new MailboxCalendarFolderDataProvider(base.MailboxSession.GetADSessionSettings(), DirectoryHelper.ReadADRecipient(base.MailboxSession.MailboxOwner.MailboxInfo.MailboxGuid, base.MailboxSession.MailboxOwner.MailboxInfo.IsArchive, base.MailboxSession.GetADRecipientSession(true, ConsistencyMode.IgnoreInvalid)) as ADUser, "SavePublishedOptions"))
     {
         mailboxCalendarFolderDataProvider.Save(this.PublishedOptions);
     }
     this.publishedOptions = null;
 }
Пример #2
0
        private void ExecuteCalendarVDirTests(TestCasConnectivity.TestCasConnectivityRunInstance instance, CasTransactionOutcome outcome)
        {
            string            text              = string.Format("{0}/Calendar/calendar.html", instance.exchangePrincipal.MailboxInfo.PrimarySmtpAddress.ToString());
            string            text2             = string.Format("{0}/Calendar/calendar.ics", instance.exchangePrincipal.MailboxInfo.PrimarySmtpAddress.ToString());
            ADSessionSettings adsessionSettings = instance.exchangePrincipal.MailboxInfo.OrganizationId.ToADSessionSettings();
            IRecipientSession tenantOrRootOrgRecipientSession = DirectorySessionFactory.Default.GetTenantOrRootOrgRecipientSession(null, true, ConsistencyMode.IgnoreInvalid, null, adsessionSettings, 293, "ExecuteCalendarVDirTests", "f:\\15.00.1497\\sources\\dev\\Management\\src\\Management\\Monitoring\\Tasks\\TestCalendarConnectivity.cs");

            using (MailboxCalendarFolderDataProvider mailboxCalendarFolderDataProvider = new MailboxCalendarFolderDataProvider(adsessionSettings, DirectoryHelper.ReadADRecipient(instance.exchangePrincipal.MailboxInfo.MailboxGuid, instance.exchangePrincipal.MailboxInfo.IsArchive, tenantOrRootOrgRecipientSession) as ADUser, "Test-CalendarConnectivity"))
            {
                StoreObjectId defaultFolderId = mailboxCalendarFolderDataProvider.MailboxSession.GetDefaultFolderId(DefaultFolderType.Calendar);
                Microsoft.Exchange.Data.Storage.Management.MailboxFolderId identity = new Microsoft.Exchange.Data.Storage.Management.MailboxFolderId(instance.exchangePrincipal.ObjectId, defaultFolderId, null);
                MailboxCalendarFolder mailboxCalendarFolder = (MailboxCalendarFolder)mailboxCalendarFolderDataProvider.Read <MailboxCalendarFolder>(identity);
                if (!mailboxCalendarFolder.PublishEnabled)
                {
                    mailboxCalendarFolder.SearchableUrlEnabled = true;
                    mailboxCalendarFolder.PublishEnabled       = true;
                    mailboxCalendarFolder.PublishedCalendarUrl = new Uri(instance.baseUri, text).ToString();
                    mailboxCalendarFolder.PublishedICalUrl     = new Uri(instance.baseUri, text2).ToString();
                    try
                    {
                        mailboxCalendarFolderDataProvider.Save(mailboxCalendarFolder);
                    }
                    catch (NotAllowedPublishingByPolicyException ex)
                    {
                        instance.Outcomes.Enqueue(new Warning(ex.LocalizedString));
                        return;
                    }
                }
            }
            ADOwaVirtualDirectory adowaVirtualDirectory = instance.VirtualDirectory as ADOwaVirtualDirectory;

            if (adowaVirtualDirectory != null && !(adowaVirtualDirectory.AnonymousFeaturesEnabled != true))
            {
                base.WriteMonitoringEvent(1104, this.MonitoringEventSource, EventTypeEnumeration.Success, Strings.CasHealthCalendarVDirSuccess);
                TimeSpan latency;
                if (!this.TestCalendarUrlResponse(text2, instance, TestCalendarConnectivity.CalendarContext.ICalContext, out latency))
                {
                    outcome.Update(CasTransactionResultEnum.Failure);
                }
                else
                {
                    outcome.UpdateLatency(latency);
                }
                if (!this.TestCalendarUrlResponse(text, instance, TestCalendarConnectivity.CalendarContext.ViewCalendarContext, out latency))
                {
                    outcome.Update(CasTransactionResultEnum.Failure);
                }
                return;
            }
            instance.Outcomes.Enqueue(new Warning(Strings.CasHealthCalendarVDirWarning(instance.VirtualDirectoryName, instance.CasFqdn)));
            outcome.Update(CasTransactionResultEnum.Skipped);
            base.WriteMonitoringEvent(1105, this.MonitoringEventSource, EventTypeEnumeration.Warning, Strings.CasHealthCalendarVDirWarning(instance.VirtualDirectoryName, instance.CasFqdn));
        }