internal static MailboxData DiscoverPublicFolderTestMailbox(IIdentityParameter identity, IConfigurationSession configurationSession, IRecipientSession recipientSession, ADServerSettings serverSettings, DataAccessHelper.CategorizedGetDataObjectDelegate getDataObject, Task.TaskVerboseLoggingDelegate writeVerbose, Task.ErrorLoggerDelegate writeError) { if (identity == null) { Organization orgContainer = configurationSession.GetOrgContainer(); if (orgContainer.DefaultPublicFolderMailbox.HierarchyMailboxGuid != default(Guid)) { identity = new MailboxIdParameter(orgContainer.DefaultPublicFolderMailbox.HierarchyMailboxGuid.ToString()); } else { writeError(new MigrationPermanentException(Strings.ErrorUnableToFindValidPublicFolderMailbox), ExchangeErrorCategory.Client, null); } } ADUser aduser = RequestTaskHelper.ResolveADUser(recipientSession, recipientSession, serverSettings, identity, new OptionalIdentityData(), null, getDataObject, writeVerbose, writeError, true); if (aduser.RecipientTypeDetails != RecipientTypeDetails.PublicFolderMailbox) { writeError(new MigrationPermanentException(Strings.ErrorNotPublicFolderMailbox(identity.RawIdentity)), ExchangeErrorCategory.Client, null); } return(MailboxData.CreateFromADUser(aduser)); }
public override IAsyncResult BeginProxyWebRequest(IService service, MailboxData[] mailboxArray, AsyncCallback callback, object asyncState) { MailTipsApplication.GetMailTipsTracer.TraceFunction((long)this.traceId, "Entering MailTipsApplication.BeginProxyWebRequest"); if (Testability.WebServiceCredentials != null) { service.Credentials = Testability.WebServiceCredentials; ServicePointManager.ServerCertificateValidationCallback = ((object obj, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors) => true); } GetMailTipsType getMailTipsType = new GetMailTipsType(); getMailTipsType.SendingAs = new EmailAddressType(); getMailTipsType.SendingAs.EmailAddress = this.sendingAs.AddressString; getMailTipsType.SendingAs.RoutingType = this.sendingAs.Prefix.PrimaryPrefix; getMailTipsType.Recipients = new EmailAddressType[mailboxArray.Length]; for (int i = 0; i < mailboxArray.Length; i++) { MailboxData mailboxData = mailboxArray[i]; getMailTipsType.Recipients[i] = new EmailAddressType(); getMailTipsType.Recipients[i].EmailAddress = mailboxData.Email.Address; getMailTipsType.Recipients[i].RoutingType = mailboxData.Email.RoutingType; } getMailTipsType.MailTipsRequested = (MailTipTypes)this.mailTipTypes; return(service.BeginGetMailTips(getMailTipsType, callback, asyncState)); }
// Token: 0x0600109E RID: 4254 RVA: 0x00061657 File Offset: 0x0005F857 public GroupMetricsGeneratorTaskContext(MailboxData mailboxData, TimeBasedDatabaseJob job, Queue <TaskQueueItem> taskQueue, AssistantStep step, TaskStatus taskStatus, RunData runData, IList <DirectoryProcessorBaseTask> deferredFinalizeTasks) : base(mailboxData, job, taskQueue, step, taskStatus, runData, deferredFinalizeTasks) { }
// Token: 0x060011AB RID: 4523 RVA: 0x000677EE File Offset: 0x000659EE public InferenceTrainingTaskContext(MailboxData mailboxData, TimeBasedDatabaseJob job, AssistantStep step, MailboxTrainingState mailboxTrainingState, MailboxTruthLoggingState mailboxTruthLoggingState) : base(mailboxData, job, null) { base.Step = step; this.MailboxTrainingState = mailboxTrainingState; this.MailboxTruthLoggingState = mailboxTruthLoggingState; }
private void TestPstImportSubscription(IMigrationDataProvider dataProvider, PSTImportEndpoint endpoint, MailboxData targetMailbox) { PSTJobItemSubscriptionSettings jobItemSettings = PSTJobItemSubscriptionSettings.CreateFromProperties(this.FilePath); PSTImportAccessor pstimportAccessor = new PSTImportAccessor(dataProvider, null); pstimportAccessor.TestCreateSubscription(endpoint, null, jobItemSettings, targetMailbox, "PSTImport"); }
internal static void VerifyPublicFolderConnection(IMigrationDataProvider dataProvider, PublicFolderEndpoint publicFolderEndpoint, string sourceMailboxLegacyDn, string publicFolderDatabaseServerLegacyDn, MailboxData mailboxData) { MrsPublicFolderAccessor mrsPublicFolderAccessor = new MrsPublicFolderAccessor(dataProvider, "TestMigrationServerAvailability"); using (Stream stream = new MemoryStream()) { using (StreamWriter streamWriter = new StreamWriter(stream)) { streamWriter.WriteLine("\"{0}\",\"{1}\"", "FolderPath", "TargetMailbox"); streamWriter.WriteLine("\"\\\",\"{0}\"", mailboxData.Name); streamWriter.Flush(); stream.Seek(0L, SeekOrigin.Begin); mrsPublicFolderAccessor.TestCreateSubscription(publicFolderEndpoint, mailboxData, stream); } } }
internal static bool VerifyExchangeOutlookAnywhereConnection(IMigrationDataProvider dataProvider, ExchangeOutlookAnywhereEndpoint outlookAnywhereEndpoint, string emailAddress, string sourceMailboxLegacyDN, MailboxData targetMailbox, bool discoverAdminPrivilege) { string mailboxDN; if (!string.IsNullOrEmpty(sourceMailboxLegacyDN)) { mailboxDN = sourceMailboxLegacyDN; } else if (!string.IsNullOrEmpty(emailAddress) && (!outlookAnywhereEndpoint.UseAutoDiscover || outlookAnywhereEndpoint.AutodiscoverResponse == null)) { NspiMigrationDataReader nspiDataReader = outlookAnywhereEndpoint.GetNspiDataReader(null); IMigrationDataRow recipient = nspiDataReader.GetRecipient(emailAddress); NspiMigrationDataRow nspiMigrationDataRow = recipient as NspiMigrationDataRow; if (nspiMigrationDataRow == null) { LocalizedString localizedErrorMessage = LocalizedString.Empty; InvalidDataRow invalidDataRow = recipient as InvalidDataRow; if (invalidDataRow != null && invalidDataRow.Error != null) { LocalizedString localizedErrorMessage2 = invalidDataRow.Error.LocalizedErrorMessage; localizedErrorMessage = invalidDataRow.Error.LocalizedErrorMessage; } throw new MigrationPermanentException(localizedErrorMessage); } mailboxDN = nspiMigrationDataRow.Recipient.GetPropertyValue <string>(PropTag.EmailAddress); } else { mailboxDN = outlookAnywhereEndpoint.AutodiscoverResponse.MailboxDN; } ExchangeJobItemSubscriptionSettings subscriptionSettings = ExchangeJobItemSubscriptionSettings.CreateFromProperties(mailboxDN, outlookAnywhereEndpoint.ExchangeServer, outlookAnywhereEndpoint.ExchangeServer, outlookAnywhereEndpoint.RpcProxyServer); bool flag = false; try { IL_C3: MRSMergeRequestAccessor mrsmergeRequestAccessor = new MRSMergeRequestAccessor(dataProvider, null, false); mrsmergeRequestAccessor.TestCreateSubscription(outlookAnywhereEndpoint, null, subscriptionSettings, targetMailbox, null, false); } catch (LocalizedException ex) { if (discoverAdminPrivilege && !flag && CommonUtils.GetExceptionSide(ex) == ExceptionSide.Source) { Exception ex2 = ex; while (ex2.InnerException != null) { ex2 = ex2.InnerException; } if (CommonUtils.ExceptionIs(ex2, new WellKnownException[] { WellKnownException.MapiLogonFailed })) { if (outlookAnywhereEndpoint.MailboxPermission == MigrationMailboxPermission.Admin) { outlookAnywhereEndpoint.MailboxPermission = MigrationMailboxPermission.FullAccess; } else { outlookAnywhereEndpoint.MailboxPermission = MigrationMailboxPermission.Admin; } flag = true; goto IL_C3; } } throw; } return(flag); }
/// <summary> /// Gets the free/busy status appointment information for User2 (as specified in ptfconfig) through testUserName's account. /// </summary> /// <param name="testUserName">The user who gets the free/busy status information.</param> /// <param name="password">The testUserName's password.</param> /// <returns> /// <para>"0": means "FreeBusy", which indicates brief information about the appointments on the calendar;</para> /// <para>"1": means "Detailed", which indicates detailed information about the appointments on the calendar;</para> /// <para>"2": means the appointment free/busy information can't be viewed or error occurs, which indicates the user has no permission to get information about the appointments on the calendar;</para> /// </returns> public string GetUserFreeBusyStatus(string testUserName, string password) { // Use the specified user for the web service client authentication string domain = Common.GetConfigurationPropertyValue("Domain", this.Site); this.availability.Credentials = new NetworkCredential(testUserName, password, domain); GetUserAvailabilityRequestType availabilityRequest = new GetUserAvailabilityRequestType(); SerializableTimeZone timezone = new SerializableTimeZone() { Bias = 480, StandardTime = new SerializableTimeZoneTime() { Bias = 0, Time = "02:00:00", DayOrder = 5, Month = 10, DayOfWeek = "Sunday" }, DaylightTime = new SerializableTimeZoneTime() { Bias = -60, Time = "02:00:00", DayOrder = 1, Month = 4, DayOfWeek = "Sunday" } }; availabilityRequest.TimeZone = timezone; // Specifies the mailbox to query for availability information. string user = Common.GetConfigurationPropertyValue("User2Name", this.Site); EmailAddress emailAddress = new EmailAddress() { Address = string.IsNullOrEmpty(user) ? string.Empty : user + "@" + domain }; MailboxData mailboxData = new MailboxData() { Email = emailAddress, AttendeeType = MeetingAttendeeType.Organizer, }; availabilityRequest.MailboxDataArray = new MailboxData[] { mailboxData }; // Identify the time to compare free/busy information. FreeBusyViewOptionsType freeBusyViewOptions = new FreeBusyViewOptionsType() { TimeWindow = new Duration() { StartTime = DateTime.Now, EndTime = DateTime.Now.AddHours(3) }, RequestedView = FreeBusyViewType.Detailed, RequestedViewSpecified = true }; availabilityRequest.FreeBusyViewOptions = freeBusyViewOptions; GetUserAvailabilityResponseType availabilityInfo = null; try { availabilityInfo = this.availability.GetUserAvailability(availabilityRequest); } catch (SoapException exception) { Site.Assert.Fail("Error occurs when getting free/busy status: {0}", exception.Message); } string freeBusyStatus = "3"; FreeBusyResponseType[] freeBusyArray = availabilityInfo.FreeBusyResponseArray; if (freeBusyArray != null) { foreach (FreeBusyResponseType freeBusy in freeBusyArray) { ResponseClassType responseClass = freeBusy.ResponseMessage.ResponseClass; if (responseClass == ResponseClassType.Success) { // If the response FreeBusyViewType value is FreeBusy or Detailed, the freeBusyStatus is Detailed. // If all the response FreeBusyViewType values are FreeBusy, the freeBusyStatus is FreeBusy; if (freeBusy.FreeBusyView.FreeBusyViewType == FreeBusyViewType.Detailed) { freeBusyStatus = "1"; } else if (freeBusy.FreeBusyView.FreeBusyViewType == FreeBusyViewType.FreeBusy) { if (freeBusyStatus != "1") { freeBusyStatus = "0"; } } } else if (responseClass == ResponseClassType.Error) { if (freeBusy.ResponseMessage.ResponseCode == ResponseCodeType.ErrorNoFreeBusyAccess) { return("2"); } else { Site.Assert.Fail("Error occurs when getting free/busy status. ErrorCode: {0}; ErrorMessage: {1}.", freeBusy.ResponseMessage.ResponseCode, freeBusy.ResponseMessage.MessageText); } } } } return(freeBusyStatus); }
public static List <CalendarObject> GetCalendarData(DateTime lookupDate) { List <CalendarObject> calendarObjects = new List <CalendarObject>(); //umdemo.dnsalias.com explicit credentials ExchangeServiceBinding exchangeServer = new ExchangeServiceBinding(); ICredentials creds = new NetworkCredential(user, password, "um.test.com"); exchangeServer.Credentials = creds; exchangeServer.Url = @"http://um.test.com/ews/exchange.asmx"; GetUserAvailabilityRequestType request = new GetUserAvailabilityRequestType(); MailboxData[] mailboxes = new MailboxData[1]; mailboxes[0] = new MailboxData(); // Identify the user mailbox to review their Free/Busy data EmailAddress emailAddress = new EmailAddress(); emailAddress.Address = "*****@*****.**"; emailAddress.Name = String.Empty; mailboxes[0].Email = emailAddress; request.MailboxDataArray = mailboxes; //Set TimeZone request.TimeZone = new SerializableTimeZone(); request.TimeZone.Bias = 480; request.TimeZone.StandardTime = new SerializableTimeZoneTime(); request.TimeZone.StandardTime.Bias = 0; request.TimeZone.StandardTime.DayOfWeek = DayOfWeekType.Sunday.ToString(); request.TimeZone.StandardTime.DayOrder = 1; request.TimeZone.StandardTime.Month = 11; request.TimeZone.StandardTime.Time = "02:00:00"; request.TimeZone.DaylightTime = new SerializableTimeZoneTime(); request.TimeZone.DaylightTime.Bias = -60; request.TimeZone.DaylightTime.DayOfWeek = DayOfWeekType.Sunday.ToString(); request.TimeZone.DaylightTime.DayOrder = 2; request.TimeZone.DaylightTime.Month = 3; request.TimeZone.DaylightTime.Time = "02:00:00"; // Identify the time to compare if the user is Free/Busy Duration duration = new Duration(); duration.StartTime = lookupDate; duration.EndTime = lookupDate.AddDays(1); // Identify the options for comparing F/B FreeBusyViewOptionsType viewOptions = new FreeBusyViewOptionsType(); viewOptions.TimeWindow = duration; viewOptions.RequestedView = FreeBusyViewType.Detailed; viewOptions.RequestedViewSpecified = true; request.FreeBusyViewOptions = viewOptions; GetUserAvailabilityResponseType response = exchangeServer.GetUserAvailability(request); foreach (FreeBusyResponseType responseType in response.FreeBusyResponseArray) { if (responseType.FreeBusyView.CalendarEventArray.Length > 0) { foreach (CalendarEvent calendar in responseType.FreeBusyView.CalendarEventArray) { CalendarObject calendarObject = new CalendarObject(); calendarObject.Location = calendar.CalendarEventDetails.Location; calendarObject.Subject = calendar.CalendarEventDetails.Subject; calendarObject.StartDate = calendar.StartTime; calendarObject.EndDate = calendar.EndTime; calendarObject.IsMeeting = calendar.CalendarEventDetails.IsMeeting; calendarObjects.Add(calendarObject); } } } return(calendarObjects); }
// Token: 0x0600146F RID: 5231 RVA: 0x0007618F File Offset: 0x0007438F public InferenceDataCollectionTaskContext(MailboxData mailboxData, TimeBasedDatabaseJob job, AssistantStep step, IMailboxProcessingState mailboxProcessingState) : base(mailboxData, job, null) { base.Step = step; this.MailboxProcessingState = mailboxProcessingState; }
// Token: 0x060000E0 RID: 224 RVA: 0x0000574C File Offset: 0x0000394C public virtual AssistantTaskContext InitializeContext(MailboxData mailbox, TimeBasedDatabaseJob job) { return(new AssistantTaskContext(mailbox, job, null)); }
// Token: 0x060015A2 RID: 5538 RVA: 0x0007A827 File Offset: 0x00078A27 public override AssistantTaskContext InitializeContext(MailboxData data, TimeBasedDatabaseJob job) { this.TraceDebugExecuting(ExTraceGlobals.ProbeTimeBasedAssistantTracer.IsTraceEnabled(TraceType.DebugTrace) ? MethodBase.GetCurrentMethod().Name : string.Empty); return(base.InitializeContext(data, job)); }
protected override void InternalValidate() { base.InternalValidate(); bool flag = false; MigrationType endpointType = this.DataObject.EndpointType; if (endpointType <= MigrationType.ExchangeOutlookAnywhere) { if (endpointType == MigrationType.IMAP) { this.WriteParameterErrorIfSet("Credentials"); this.WriteParameterErrorIfSet("MailboxPermission"); this.WriteParameterErrorIfSet("ExchangeServer"); this.WriteParameterErrorIfSet("RPCProxyServer"); this.WriteParameterErrorIfSet("NspiServer"); this.WriteParameterErrorIfSet("PublicFolderDatabaseServerLegacyDN"); this.WriteParameterErrorIfSet("TestMailbox", new LocalizedString?(Strings.ErrorInvalidEndpointParameterReasonUsedForConnectionTest)); this.WriteParameterErrorIfSet("SourceMailboxLegacyDN", new LocalizedString?(Strings.ErrorInvalidEndpointParameterReasonUsedForConnectionTest)); this.WriteParameterErrorIfSet("EmailAddress", new LocalizedString?(Strings.ErrorInvalidEndpointParameterReasonUsedForConnectionTest)); goto IL_2B4; } if (endpointType == MigrationType.ExchangeOutlookAnywhere) { this.WriteParameterErrorIfSet("Port"); this.WriteParameterErrorIfSet("Security"); this.WriteParameterErrorIfSet("PublicFolderDatabaseServerLegacyDN"); goto IL_2B4; } } else { if (endpointType == MigrationType.ExchangeRemoteMove) { this.WriteParameterErrorIfSet("ExchangeServer"); this.WriteParameterErrorIfSet("RPCProxyServer"); this.WriteParameterErrorIfSet("Port"); this.WriteParameterErrorIfSet("MailboxPermission"); this.WriteParameterErrorIfSet("Authentication"); this.WriteParameterErrorIfSet("Security"); this.WriteParameterErrorIfSet("NspiServer"); this.WriteParameterErrorIfSet("PublicFolderDatabaseServerLegacyDN"); this.WriteParameterErrorIfSet("TestMailbox", new LocalizedString?(Strings.ErrorInvalidEndpointParameterReasonUsedForConnectionTest)); this.WriteParameterErrorIfSet("SourceMailboxLegacyDN", new LocalizedString?(Strings.ErrorInvalidEndpointParameterReasonUsedForConnectionTest)); this.WriteParameterErrorIfSet("EmailAddress", new LocalizedString?(Strings.ErrorInvalidEndpointParameterReasonUsedForConnectionTest)); goto IL_2B4; } if (endpointType == MigrationType.PSTImport) { this.WriteParameterErrorIfSet("ExchangeServer"); this.WriteParameterErrorIfSet("RPCProxyServer"); this.WriteParameterErrorIfSet("Port"); this.WriteParameterErrorIfSet("MailboxPermission"); this.WriteParameterErrorIfSet("Authentication"); this.WriteParameterErrorIfSet("Security"); this.WriteParameterErrorIfSet("NspiServer"); this.WriteParameterErrorIfSet("PublicFolderDatabaseServerLegacyDN"); this.WriteParameterErrorIfSet("TestMailbox", new LocalizedString?(Strings.ErrorInvalidEndpointParameterReasonUsedForConnectionTest)); this.WriteParameterErrorIfSet("SourceMailboxLegacyDN", new LocalizedString?(Strings.ErrorInvalidEndpointParameterReasonUsedForConnectionTest)); this.WriteParameterErrorIfSet("EmailAddress", new LocalizedString?(Strings.ErrorInvalidEndpointParameterReasonUsedForConnectionTest)); goto IL_2B4; } if (endpointType == MigrationType.PublicFolder) { this.WriteParameterErrorIfSet("RemoteServer"); this.WriteParameterErrorIfSet("ExchangeServer"); this.WriteParameterErrorIfSet("Port"); this.WriteParameterErrorIfSet("MailboxPermission"); this.WriteParameterErrorIfSet("Security"); this.WriteParameterErrorIfSet("NspiServer"); this.WriteParameterErrorIfSet("EmailAddress", new LocalizedString?(Strings.ErrorInvalidEndpointParameterReasonUsedForConnectionTest)); goto IL_2B4; } } base.WriteError(new InvalidEndpointTypeException(this.Identity.RawIdentity, this.DataObject.EndpointType.ToString())); IL_2B4: if (base.IsFieldSet("MaxConcurrentMigrations") || base.IsFieldSet("MaxConcurrentIncrementalSyncs")) { Unlimited <int> unlimited = base.IsFieldSet("MaxConcurrentMigrations") ? this.MaxConcurrentMigrations : this.DataObject.MaxConcurrentMigrations; Unlimited <int> unlimited2 = base.IsFieldSet("MaxConcurrentIncrementalSyncs") ? this.MaxConcurrentIncrementalSyncs : this.DataObject.MaxConcurrentIncrementalSyncs; if (unlimited2 > unlimited) { base.WriteError(new MigrationMaxConcurrentIncrementalSyncsVerificationFailedException(unlimited2, unlimited)); } } if (base.IsFieldSet("MaxConcurrentMigrations") && !this.MaxConcurrentMigrations.Equals(this.DataObject.MaxConcurrentMigrations)) { this.DataObject.MaxConcurrentMigrations = this.MaxConcurrentMigrations; this.changed = true; } if (base.IsFieldSet("MaxConcurrentIncrementalSyncs") && !this.MaxConcurrentIncrementalSyncs.Equals(this.DataObject.MaxConcurrentIncrementalSyncs)) { this.DataObject.MaxConcurrentIncrementalSyncs = this.MaxConcurrentIncrementalSyncs; this.changed = true; } if (base.IsFieldSet("Credentials") && (this.Credentials == null || !this.Credentials.Equals(this.DataObject.Credentials))) { this.DataObject.Credentials = this.Credentials; this.changed = true; flag = true; } if (base.IsFieldSet("MailboxPermission") && this.MailboxPermission != this.DataObject.MailboxPermission) { this.DataObject.MailboxPermission = this.MailboxPermission; this.changed = true; flag = true; } if (base.IsFieldSet("ExchangeServer") && !this.ExchangeServer.Equals(this.DataObject.ExchangeServer)) { this.DataObject.ExchangeServer = this.ExchangeServer; this.changed = true; flag = true; } if (base.IsFieldSet("RPCProxyServer") && !this.RpcProxyServer.Equals(this.DataObject.RpcProxyServer)) { this.DataObject.RpcProxyServer = this.RpcProxyServer; this.changed = true; flag = true; } if (base.IsFieldSet("Port") && !this.Port.Equals(this.DataObject.Port)) { this.DataObject.Port = new int?(this.Port); this.changed = true; flag = true; } if (base.IsFieldSet("Authentication") && !this.Authentication.Equals(this.DataObject.Authentication)) { this.DataObject.Authentication = new AuthenticationMethod?(this.Authentication); this.changed = true; flag = true; } if (base.IsFieldSet("Security") && !this.Security.Equals(this.DataObject.Security)) { this.DataObject.Security = new IMAPSecurityMechanism?(this.Security); this.changed = true; flag = true; } if (base.IsFieldSet("RemoteServer") && !this.RemoteServer.Equals(this.DataObject.RemoteServer)) { this.DataObject.RemoteServer = this.RemoteServer; this.changed = true; flag = true; } if (base.IsFieldSet("NspiServer") && !this.NspiServer.Equals(this.DataObject.NspiServer)) { this.DataObject.NspiServer = this.NspiServer; this.changed = true; flag = true; } if (this.DataObject.EndpointType == MigrationType.PublicFolder && base.IsFieldSet("SourceMailboxLegacyDN") && !this.SourceMailboxLegacyDN.Equals(this.DataObject.SourceMailboxLegacyDN)) { if (!LegacyDN.IsValidLegacyDN(this.SourceMailboxLegacyDN)) { base.WriteError(new InvalidLegacyExchangeDnValueException("SourceMailboxLegacyDN")); } this.DataObject.SourceMailboxLegacyDN = this.SourceMailboxLegacyDN; this.changed = true; flag = true; } if (base.IsFieldSet("PublicFolderDatabaseServerLegacyDN") && !this.PublicFolderDatabaseServerLegacyDN.Equals(this.DataObject.PublicFolderDatabaseServerLegacyDN)) { if (!LegacyDN.IsValidLegacyDN(this.PublicFolderDatabaseServerLegacyDN)) { base.WriteError(new InvalidLegacyExchangeDnValueException("PublicFolderDatabaseServerLegacyDN")); } this.DataObject.PublicFolderDatabaseServerLegacyDN = this.PublicFolderDatabaseServerLegacyDN; this.changed = true; flag = true; } if (flag) { this.DataObject.LastModifiedTime = (DateTime)ExDateTime.UtcNow; } if (!this.SkipVerification) { MigrationEndpointBase migrationEndpointBase = MigrationEndpointBase.CreateFrom(this.DataObject); migrationEndpointBase.VerifyConnectivity(); if (this.DataObject.EndpointType == MigrationType.ExchangeOutlookAnywhere) { ExchangeOutlookAnywhereEndpoint exchangeOutlookAnywhereEndpoint = (ExchangeOutlookAnywhereEndpoint)migrationEndpointBase; if (!string.IsNullOrEmpty(this.SourceMailboxLegacyDN) || this.EmailAddress != SmtpAddress.Empty || !string.IsNullOrEmpty(exchangeOutlookAnywhereEndpoint.EmailAddress)) { MailboxData targetMailbox = TestMigrationServerAvailability.DiscoverTestMailbox(this.TestMailbox, ((MigrationADProvider)this.DataProvider.ADProvider).RecipientSession, base.ServerSettings, new DataAccessHelper.CategorizedGetDataObjectDelegate(base.GetDataObject <ADUser>), new Task.TaskVerboseLoggingDelegate(base.WriteVerbose), new Task.ErrorLoggerDelegate(base.WriteError)); string text = (string)this.EmailAddress; if (string.IsNullOrEmpty(text)) { text = exchangeOutlookAnywhereEndpoint.EmailAddress; } TestMigrationServerAvailability.VerifyExchangeOutlookAnywhereConnection(this.DataProvider, exchangeOutlookAnywhereEndpoint, text, this.SourceMailboxLegacyDN, targetMailbox, false); return; } } else if (this.DataObject.EndpointType == MigrationType.PublicFolder) { MailboxData mailboxData = TestMigrationServerAvailability.DiscoverPublicFolderTestMailbox(this.TestMailbox, this.ConfigurationSession, ((MigrationADProvider)this.DataProvider.ADProvider).RecipientSession, base.ServerSettings, new DataAccessHelper.CategorizedGetDataObjectDelegate(base.GetDataObject <ADUser>), new Task.TaskVerboseLoggingDelegate(base.WriteVerbose), new Task.ErrorLoggerDelegate(base.WriteError)); TestMigrationServerAvailability.VerifyPublicFolderConnection(this.DataProvider, (PublicFolderEndpoint)migrationEndpointBase, this.SourceMailboxLegacyDN, this.PublicFolderDatabaseServerLegacyDN, mailboxData); } } }
// Token: 0x060012A6 RID: 4774 RVA: 0x0006CF0B File Offset: 0x0006B10B private OABGeneratorTaskContext(MailboxData mailboxData, TimeBasedDatabaseJob job) : base(mailboxData, job, null) { this.returnStep = new Stack <AssistantStep>(5); }
// Token: 0x0600310C RID: 12556 RVA: 0x0012096C File Offset: 0x0011EB6C public static void RenderSuggestions(TextWriter output, Suggestion[] meetingSuggestions, MailboxData[] mailboxDataArray, SchedulingRecipientInfo[] schedulingRecipientInfos, UserContext userContext) { ExTraceGlobals.CalendarCallTracer.TraceDebug(0L, "SchedulingTabRenderingUtilities.RenderSuggestions"); UserOptions userOptions = UserContextManager.GetUserContext().UserOptions; foreach (Suggestion suggestion in meetingSuggestions) { int[] array = new int[suggestion.AvailableRoomsCount]; int num = 0; int num2 = suggestion.RequiredAttendeeCount - suggestion.RequiredAttendeeConflictCount; int num3 = suggestion.OptionalAttendeeCount - suggestion.OptionalAttendeeConflictCount; StringBuilder stringBuilder = new StringBuilder(); StringBuilder stringBuilder2 = new StringBuilder(); StringBuilder stringBuilder3 = new StringBuilder(); StringBuilder stringBuilder4 = new StringBuilder(); int j = 0; while (j < mailboxDataArray.Length) { AttendeeConflictData attendeeConflictData = suggestion.AttendeeConflictDataArray[j]; MeetingAttendeeType meetingAttendeeType = MeetingAttendeeType.Required; StringBuilder stringBuilder5 = null; string value = string.Empty; if (attendeeConflictData is IndividualAttendeeConflictData) { IndividualAttendeeConflictData individualAttendeeConflictData = (IndividualAttendeeConflictData)attendeeConflictData; if (individualAttendeeConflictData.Attendee.AttendeeType == MeetingAttendeeType.Room && !individualAttendeeConflictData.AttendeeHasConflict) { array[num++] = j; } else { if (individualAttendeeConflictData.AttendeeHasConflict) { meetingAttendeeType = individualAttendeeConflictData.Attendee.AttendeeType; value = schedulingRecipientInfos[j].DisplayName; goto IL_1F5; } if (individualAttendeeConflictData.IsMissingFreeBusyData) { stringBuilder5 = stringBuilder4; value = schedulingRecipientInfos[j].DisplayName; goto IL_1F5; } } } else { if (attendeeConflictData is UnknownAttendeeConflictData) { stringBuilder5 = stringBuilder4; value = schedulingRecipientInfos[j].DisplayName; goto IL_1F5; } if (attendeeConflictData is TooBigGroupAttendeeConflictData) { stringBuilder5 = stringBuilder4; value = schedulingRecipientInfos[j].DisplayName; goto IL_1F5; } if (attendeeConflictData is GroupAttendeeConflictData) { GroupAttendeeConflictData groupAttendeeConflictData = (GroupAttendeeConflictData)attendeeConflictData; if (0 < groupAttendeeConflictData.NumberOfMembersWithNoData) { if (0 < stringBuilder4.Length) { stringBuilder4.Append(", "); } stringBuilder4.AppendFormat(LocalizedStrings.GetNonEncoded(-1170293090), schedulingRecipientInfos[j].DisplayName, groupAttendeeConflictData.NumberOfMembersWithNoData); } if (groupAttendeeConflictData.NumberOfMembersWithConflict != 0) { MailboxData mailboxData = mailboxDataArray[j]; meetingAttendeeType = mailboxData.AttendeeType; value = string.Format(LocalizedStrings.GetNonEncoded(-1505134519), schedulingRecipientInfos[j].DisplayName, groupAttendeeConflictData.NumberOfMembersWithConflict, groupAttendeeConflictData.NumberOfMembers); goto IL_1F5; } } } IL_24B: j++; continue; IL_1F5: if (stringBuilder5 == null) { switch (meetingAttendeeType) { case MeetingAttendeeType.Organizer: case MeetingAttendeeType.Required: stringBuilder5 = stringBuilder; break; case MeetingAttendeeType.Optional: stringBuilder5 = stringBuilder2; break; case MeetingAttendeeType.Room: case MeetingAttendeeType.Resource: stringBuilder5 = stringBuilder3; break; } } if (0 < stringBuilder5.Length) { stringBuilder5.Append(", "); } stringBuilder5.Append(value); goto IL_24B; } output.Write("<div class=\"sug\" st="); output.Write(suggestion.MeetingTime.TimeOfDay.TotalMinutes); output.Write(" title=\""); if (0 < suggestion.RequiredAttendeeConflictCount || 0 < suggestion.OptionalAttendeeConflictCount || 0 < suggestion.ResourceAttendeeConflictCount) { output.Write(LocalizedStrings.GetHtmlEncoded(-1917590199)); if (0 < stringBuilder.Length) { output.Write("\n"); output.Write(LocalizedStrings.GetHtmlEncoded(-1709254790)); output.Write(" "); Utilities.HtmlEncode(stringBuilder.ToString(), output); } if (0 < stringBuilder2.Length) { output.Write("\n"); output.Write(LocalizedStrings.GetHtmlEncoded(-98673561)); output.Write(" "); Utilities.HtmlEncode(stringBuilder2.ToString(), output); } if (0 < stringBuilder3.Length) { output.Write("\n"); output.Write(LocalizedStrings.GetHtmlEncoded(-294537986)); output.Write(" "); Utilities.HtmlEncode(stringBuilder3.ToString(), output); } if (0 < stringBuilder4.Length) { output.Write("\n"); output.Write(LocalizedStrings.GetHtmlEncoded(608956012)); output.Write(" "); Utilities.HtmlEncode(stringBuilder4.ToString(), output); } } output.Write("\">"); output.Write("<div class=\""); output.Write(SchedulingTabRenderingUtilities.SuggestionQualityStyles[(int)suggestion.SuggestionQuality]); output.Write("\"></div><div class=\"suggestDetail\">"); output.Write("<div class=\"when\"><span>"); output.Write(suggestion.MeetingTime.ToString(userOptions.TimeFormat)); if (0 < suggestion.RoomCount) { output.Write(" - "); output.Write((suggestion.RoomCount == 1) ? LocalizedStrings.GetHtmlEncoded(-1595764264) : LocalizedStrings.GetHtmlEncoded(-1962164027), suggestion.AvailableRoomsCount); } output.Write("</span></div>"); output.Write("<div class=\"atndcnt\">"); if (0 < suggestion.RequiredAttendeeCount) { output.Write("<span nowrap>"); userContext.RenderThemeImage(output, ThemeFileId.RequiredAttendee); output.Write(LocalizedStrings.GetHtmlEncoded(1026164821), num2, suggestion.RequiredAttendeeCount); output.Write("</span>"); } if (0 < suggestion.OptionalAttendeeCount) { output.Write(" <span nowrap>"); userContext.RenderThemeImage(output, ThemeFileId.OptionalAttendee); output.Write(LocalizedStrings.GetHtmlEncoded(1026164821), num3, suggestion.OptionalAttendeeCount); output.Write("</span>"); } output.Write("</div>"); if (0 < suggestion.AvailableRoomsCount) { output.Write("<div id=rooms style=\"display:none\">"); foreach (int num4 in array) { output.Write("<div nowrap rm=\""); Utilities.HtmlEncode(schedulingRecipientInfos[num4].ID, output); output.Write("\">"); Utilities.HtmlEncode(schedulingRecipientInfos[num4].DisplayName, output); output.Write("</div>"); } output.Write("</div>"); } output.Write("</div></div>"); } }