private int CreateAlert(int tenant, string user, int mailboxId, AlertTypes type, object data = null) { using (var db = GetDb()) { var jsonData = MailUtil.GetJsonString(data); var insertQuery = new SqlInsert(MailAlertsTable.name) .InColumnValue(MailAlertsTable.Columns.id_tenant, tenant) .InColumnValue(MailAlertsTable.Columns.id_user, user) .InColumnValue(MailAlertsTable.Columns.id_mailbox, mailboxId) .InColumnValue(MailAlertsTable.Columns.type, (int)type) .InColumnValue(MailAlertsTable.Columns.data, jsonData); return(db.ExecuteNonQuery(insertQuery)); } }
private int CreateAlerts(IDbManager db, int tenant, List <string> users, AlertTypes type, object data = null) { var result = 0; if (!users.Any()) { return(result); } var jsonData = MailUtil.GetJsonString(data); CreateInsertDelegate createInsertQuery = () => new SqlInsert(MailAlertsTable.name) .IgnoreExists(true) .InColumns(MailAlertsTable.Columns.id_tenant, MailAlertsTable.Columns.id_user, MailAlertsTable.Columns.id_mailbox, MailAlertsTable.Columns.type, MailAlertsTable.Columns.data); var insertQuery = createInsertQuery(); int i, usersLen; for (i = 0, usersLen = users.Count; i < usersLen; i++) { var user = users[i]; insertQuery .Values(tenant, user, -1, (int)type, jsonData); if ((i % 100 != 0 || i == 0) && i + 1 != usersLen) { continue; } result += db.ExecuteNonQuery(insertQuery); insertQuery = createInsertQuery(); } return(result); }
private int CreateUniqueAlert(IDbManager db, int tenant, string user, int mailboxId, AlertTypes type, object data = null) { var alerts = FindAlerts(db, tenant, user, mailboxId, type); if (alerts.Any()) { return(-1); } var jsonData = MailUtil.GetJsonString(data); var insertQuery = new SqlInsert(MailAlertsTable.name) .InColumnValue(MailAlertsTable.Columns.id_tenant, tenant) .InColumnValue(MailAlertsTable.Columns.id_user, user) .InColumnValue(MailAlertsTable.Columns.id_mailbox, mailboxId) .InColumnValue(MailAlertsTable.Columns.type, (int)type) .InColumnValue(MailAlertsTable.Columns.data, jsonData); return(db.ExecuteNonQuery(insertQuery)); }