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
                    }
                }
            }
        }
Beispiel #2
0
        /// <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);
        }
Beispiel #3
0
 /// <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());
 }