public bool SetMailboxProcessed(Mailbox mailbox, int nextLoginDelay, bool?enabled = null, int?messageCount = null, long?size = null, bool?quotaError = null, string oAuthToken = null, string imapIntervalsJson = null, bool?resetImapIntervals = false) { if (nextLoginDelay < Defines.DefaultServerLoginDelay) { nextLoginDelay = Defines.DefaultServerLoginDelay; } var query = new SqlUpdate(MailboxTable.TABLE_NAME) .Set(MailboxTable.Columns.IsProcessed, false) .Set(SET_DATE_CHECKED) .Set(nextLoginDelay > Defines.DefaultServerLoginDelay ? string.Format(SET_LOGIN_DELAY_EXPIRES, nextLoginDelay) : SetDefaultLoginDelayExpires) .Where(MailboxTable.Columns.Id, mailbox.Id); if (enabled.HasValue) { query.Set(MailboxTable.Columns.Enabled, enabled.Value); } if (messageCount.HasValue) { query.Set(MailboxTable.Columns.MsgCountLast, messageCount.Value); } if (size.HasValue) { query.Set(MailboxTable.Columns.SizeLast, size.Value); } if (quotaError.HasValue) { query.Set(MailboxTable.Columns.QuotaError, quotaError.Value); } if (!string.IsNullOrEmpty(oAuthToken)) { query.Set(MailboxTable.Columns.OAuthToken, MailUtil.EncryptPassword(oAuthToken)); } if (resetImapIntervals.HasValue) { query.Set(MailboxTable.Columns.ImapIntervals, null); } else { if (!string.IsNullOrEmpty(imapIntervalsJson)) { query.Set(MailboxTable.Columns.ImapIntervals, imapIntervalsJson); } } var result = Db.ExecuteNonQuery(query); return(result > 0); }
public int SaveMailBox(Mailbox mailbox) { var query = new SqlInsert(MailboxTable.TABLE_NAME, true) .InColumnValue(MailboxTable.Columns.Id, mailbox.Id) .InColumnValue(MailboxTable.Columns.Tenant, mailbox.Tenant) .InColumnValue(MailboxTable.Columns.User, mailbox.User) .InColumnValue(MailboxTable.Columns.Address, mailbox.Address) .InColumnValue(MailboxTable.Columns.Name, mailbox.Name) .InColumnValue(MailboxTable.Columns.Enabled, mailbox.Enabled) .InColumnValue(MailboxTable.Columns.IsRemoved, mailbox.IsRemoved) .InColumnValue(MailboxTable.Columns.IsProcessed, mailbox.IsProcessed) .InColumnValue(MailboxTable.Columns.IsServerMailbox, mailbox.IsTeamlabMailbox) .InColumnValue(MailboxTable.Columns.Imap, mailbox.Imap) .InColumnValue(MailboxTable.Columns.UserOnline, mailbox.UserOnline) .InColumnValue(MailboxTable.Columns.IsDefault, mailbox.IsDefault) .InColumnValue(MailboxTable.Columns.MsgCountLast, mailbox.MsgCountLast) .InColumnValue(MailboxTable.Columns.SizeLast, mailbox.SizeLast) .InColumnValue(MailboxTable.Columns.LoginDelay, mailbox.LoginDelay) .InColumnValue(MailboxTable.Columns.QuotaError, mailbox.QuotaError) .InColumnValue(MailboxTable.Columns.ImapIntervals, mailbox.ImapIntervals) .InColumnValue(MailboxTable.Columns.BeginDate, mailbox.BeginDate) .InColumnValue(MailboxTable.Columns.EmailInFolder, mailbox.EmailInFolder) .InColumnValue(MailboxTable.Columns.Password, MailUtil.EncryptPassword(mailbox.Password)) .InColumnValue(MailboxTable.Columns.SmtpPassword, !string.IsNullOrEmpty(mailbox.SmtpPassword) ? MailUtil.EncryptPassword(mailbox.SmtpPassword) : "") .InColumnValue(MailboxTable.Columns.OAuthToken, !string.IsNullOrEmpty(mailbox.OAuthToken) ? MailUtil.EncryptPassword(mailbox.OAuthToken) : "") .InColumnValue(MailboxTable.Columns.OAuthType, mailbox.OAuthType) .InColumnValue(MailboxTable.Columns.SmtpServerId, mailbox.SmtpServerId) .InColumnValue(MailboxTable.Columns.ServerId, mailbox.ServerId) .InColumnValue(MailboxTable.Columns.DateChecked, mailbox.DateChecked) .InColumnValue(MailboxTable.Columns.DateUserChecked, mailbox.DateUserChecked) .InColumnValue(MailboxTable.Columns.DateLoginDelayExpires, mailbox.DateLoginDelayExpires) .InColumnValue(MailboxTable.Columns.DateAuthError, mailbox.DateAuthError) .InColumnValue(MailboxTable.Columns.DateCreated, mailbox.DateCreated) .Identity(0, 0, true); var result = Db.ExecuteScalar <int>(query); return(result); }