public virtual void RemoveMailboxSyncSettingsJob() { Select allowEmailDownloadingSelect = new Select(UserConnection) .Column("SenderEmailAddress") .From("MailboxSyncSettings") .Where("MailServerId").IsEqual(Column.Parameter(Entity.Id)) as Select; using (DBExecutor dbExecutor = UserConnection.EnsureDBConnection()) { using (IDataReader reader = allowEmailDownloadingSelect.ExecuteReader(dbExecutor)) { while (reader.Read()) { #if !NETSTANDARD2_0 //TODO CRM-46901 string senderEmailAddress = reader.GetString(reader.GetOrdinal("SenderEmailAddress")); if (Entity.GetTypedColumnValue <Guid>("TypeId") == ExchangeConsts.ExchangeMailServerTypeId) { ExchangeUtility.RemoveSyncJob(UserConnection, senderEmailAddress, ExchangeUtility.MailSyncProcessName); } else if (Entity.GetTypedColumnValue <Guid>("TypeId") == ExchangeConsts.ImapMailServerTypeId) { var parameters = new Dictionary <string, object> { { "SenderEmailAddress", senderEmailAddress }, { "CurrentUserId", UserConnection.CurrentUser.Id } }; Mail.MailSynchronizer.RemoveSyncJob(UserConnection, parameters); } #endif } } } }
/// <summary> /// Executes exchange emails synchronization. /// </summary> /// <param name="userConnection"><see cref="UserConnection"/> instance.</param> /// <param name="parameters">Synchronization synchronization (user email address, /// create reminding sign etc.).</param> public virtual void Execute(UserConnection userConnection, IDictionary <string, object> parameters) { string userEmailAddress = parameters["SenderEmailAddress"].ToString(); if (string.IsNullOrEmpty(userEmailAddress)) { FormatResultMessage(new LocalizableString(userConnection.ResourceStorage, "LoadExchangeEmailsExecutor", "LocalizableStrings.NeedSetUserAddress.Value").ToString(), userEmailAddress); return; } string resultMessage; int localChangesCount, remoteChangesCount; ExchangeUtility.SyncExchangeItems(userConnection, userEmailAddress, () => new ExchangeEmailSyncProvider(userConnection, userEmailAddress), out resultMessage, out localChangesCount, out remoteChangesCount, ExchangeUtility.MailSyncProcessName); }
/// <summary> /// Executes exchange email attachments data synchronization. /// </summary> /// <param name="userConnection"><see cref="UserConnection"/> instance.</param> /// <param name="parameters">Synchronization synchronization (user email address etc.).</param> public virtual void Execute(UserConnection userConnection, IDictionary <string, object> parameters) { ExchangeUtility.UploadAttachmentsData(userConnection, parameters["UserEmailAddress"].ToString()); }