Пример #1
0
        public MailAutoreplyData UpdateAutoreply(int mailboxId, bool turnOn, bool onlyContacts,
                                                 bool turnOnToDate, DateTime fromDate, DateTime toDate, string subject, string html)
        {
            var result = MailEngineFactory
                         .AutoreplyEngine
                         .SaveAutoreply(mailboxId, turnOn, onlyContacts, turnOnToDate, fromDate, toDate, subject, html);

            CacheEngine.Clear(Username);

            return(result);
        }
        protected override void Do()
        {
            try
            {
                SetProgress((int?)MailOperationRemoveMailboxProgress.Init, "Setup tenant and user");

                var tenant = _mailBox.TenantId;
                var user   = _mailBox.UserId;

                CoreContext.TenantManager.SetCurrentTenant(tenant);

                try
                {
                    SecurityContext.AuthenticateMe(new Guid(user));
                }
                catch
                {
                    // User was removed
                    SecurityContext.AuthenticateMe(ASC.Core.Configuration.Constants.CoreSystem);
                }

                SetProgress((int?)MailOperationRemoveMailboxProgress.RemoveFromDb, "Remove mailbox from Db");

                var engine = new EngineFactory(tenant);

                engine.ServerMailboxEngine.RemoveMailbox(_mailBox);

                SetProgress((int?)MailOperationRemoveMailboxProgress.RecalculateFolder, "Recalculate folders counters");

                engine.OperationEngine.RecalculateFolders();

                SetProgress((int?)MailOperationRemoveMailboxProgress.ClearCache, "Clear accounts cache");

                CacheEngine.Clear(user);

                SetProgress((int?)MailOperationRemoveMailboxProgress.RemoveIndex, "Remove Elastic Search index by messages");

                engine.IndexEngine.Remove(_mailBox);
            }
            catch (Exception e)
            {
                Logger.Error("Mail operation error -> Remove mailbox: {0}", e);
                Error = "InternalServerError";
            }
        }
        protected override void Do()
        {
            try
            {
                SetProgress((int?)MailOperationRemoveMailboxProgress.Init, "Setup tenant and user");

                CoreContext.TenantManager.SetCurrentTenant(CurrentTenant);

                SecurityContext.AuthenticateMe(CurrentUser);

                var engine = new EngineFactory(_mailBoxData.TenantId, _mailBoxData.UserId);

                SetProgress((int?)MailOperationRemoveMailboxProgress.RemoveFromDb, "Remove mailbox from Db");

                var freedQuotaSize = engine.MailboxEngine.RemoveMailBoxInfo(_mailBoxData);

                SetProgress((int?)MailOperationRemoveMailboxProgress.FreeQuota, "Decrease newly freed quota space");

                engine.QuotaEngine.QuotaUsedDelete(freedQuotaSize);

                SetProgress((int?)MailOperationRemoveMailboxProgress.RecalculateFolder, "Recalculate folders counters");

                engine.FolderEngine.RecalculateFolders();

                SetProgress((int?)MailOperationRemoveMailboxProgress.ClearCache, "Clear accounts cache");

                CacheEngine.Clear(_mailBoxData.UserId);

                SetProgress((int?)MailOperationRemoveMailboxProgress.RemoveIndex, "Remove Elastic Search index by messages");

                engine.IndexEngine.Remove(_mailBoxData);

                SetProgress((int?)MailOperationRemoveMailboxProgress.Finished);
            }
            catch (Exception e)
            {
                Logger.ErrorFormat("Mail operation error -> Remove mailbox: {0}", e.ToString());
                Error = "InternalServerError";
            }
        }