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"; } }