public IEnumerable <int> MarkMessages(List <int> ids, string status) { if (!ids.Any()) { throw new ArgumentException(@"Empty ids collection", "ids"); } MailUserAction mailUserAction = MailUserAction.Nothing; switch (status) { case "read": MailEngineFactory.MessageEngine.SetUnread(ids, false); mailUserAction = MailUserAction.SetAsRead; break; case "unread": MailEngineFactory.MessageEngine.SetUnread(ids, true); mailUserAction = MailUserAction.SetAsUnread; break; case "important": MailEngineFactory.MessageEngine.SetImportant(ids, true); mailUserAction = MailUserAction.SetAsImportant; break; case "normal": MailEngineFactory.MessageEngine.SetImportant(ids, false); mailUserAction = MailUserAction.SetAsNotImpotant; break; case "receiptProcessed": MailEngineFactory.MessageEngine.ReceiptStatus(ids, false); mailUserAction = MailUserAction.ReceiptStatusChanged; break; } SendUserActivity(ids, mailUserAction); return(ids); }
private void SendUserActivity(List <int> ids, MailUserAction action = MailUserAction.StartImapClient, int destinationFolder = -1) { if (!IsSendUserActivity) { return; } if (!(AscCache.Default is RedisCache cache)) { return; } var exp = new UserMailboxesExp(TenantId, Username, onlyTeamlab: true); var mailboxes = MailEngineFactory.MailboxEngine.GetMailboxDataList(exp); var mailboxesOnlyoffice = mailboxes.ToList(); if (!mailboxesOnlyoffice.Any()) { return; } string key = RedisClientPrefix + Username; CashedMailUserAction cashedMailUserAction = new CashedMailUserAction() { Tenant = TenantId, UserName = Username, Uds = ids, Action = action, Destination = destinationFolder }; cache.PushMailAction(key, cashedMailUserAction); SendUserAlive(-1, null); }
public IEnumerable <int> MarkConversations(List <int> ids, string status) { if (!ids.Any()) { throw new ArgumentException(@"Empty ids collection", "ids"); } MailUserAction mailUserAction = MailUserAction.Nothing; switch (status) { case "read": MailEngineFactory.MessageEngine.SetUnread(ids, false, true); mailUserAction = MailUserAction.SetAsRead; break; case "unread": MailEngineFactory.MessageEngine.SetUnread(ids, true, true); mailUserAction = MailUserAction.SetAsUnread; break; case "important": MailEngineFactory.ChainEngine.SetConversationsImportanceFlags(TenantId, Username, true, ids); mailUserAction = MailUserAction.SetAsImportant; break; case "normal": MailEngineFactory.ChainEngine.SetConversationsImportanceFlags(TenantId, Username, false, ids); mailUserAction = MailUserAction.SetAsNotImpotant; break; } SendUserActivity(ids, mailUserAction); return(ids); }