private int CreateAlerts(int tenant, IEnumerable <string> ids_user, AlertTypes type, object data = null) { var result = 0; var users = ids_user as string[] ?? ids_user.ToArray(); if (users.Length == 0) { return(result); } using (var db = GetDb()) { var json_data = GetJsonString(data); CreateInsertDelegate create_insert_query = () => new SqlInsert(MAIL_ALERTS) .IgnoreExists(true) .InColumns(MailAlerts.id_tenant, MailAlerts.id_user, MailAlerts.id_mailbox, MailAlerts.type, MailAlerts.data); var insert_query = create_insert_query(); int i, users_len; for (i = 0, users_len = users.Length; i < users_len; i++) { var user_id = users[i]; insert_query .Values(tenant, user_id, -1, (int)type, json_data); if ((i % 100 != 0 || i == 0) && i + 1 != users_len) { continue; } result += db.ExecuteNonQuery(insert_query); insert_query = create_insert_query(); } } return(result); }
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); }
public void SaveAttachments(DbManager db, int tenant, int messageId, List <MailAttachment> attachments) { if (!attachments.Any()) { return; } CreateInsertDelegate createInsertQuery = () => new SqlInsert(AttachmentTable.Name) .InColumns(AttachmentTable.Columns.MailId, AttachmentTable.Columns.RealName, AttachmentTable.Columns.StoredName, AttachmentTable.Columns.Type, AttachmentTable.Columns.Size, AttachmentTable.Columns.FileNumber, AttachmentTable.Columns.NeedRemove, AttachmentTable.Columns.ContentId, AttachmentTable.Columns.IdTenant, AttachmentTable.Columns.IdMailbox); var insertQuery = createInsertQuery(); int i, len; for (i = 0, len = attachments.Count; i < len; i++) { var attachment = attachments[i]; insertQuery .Values(messageId, attachment.fileName, attachment.storedName, attachment.contentType, attachment.size, attachment.fileNumber, 0, attachment.contentId, tenant, attachment.mailboxId); if ((i % 100 != 0 || i == 0) && i + 1 != len) { continue; } db.ExecuteNonQuery(insertQuery); insertQuery = createInsertQuery(); } ReCountAttachments(db, messageId); }
public void SaveAttachments(DbManager db, int id_tenant, int id_mail, List <MailAttachment> attachments) { if (!attachments.Any()) { return; } CreateInsertDelegate create_insert_query = () => new SqlInsert(AttachmentTable.name) .InColumns(AttachmentTable.Columns.id_mail, AttachmentTable.Columns.name, AttachmentTable.Columns.stored_name, AttachmentTable.Columns.type, AttachmentTable.Columns.size, AttachmentTable.Columns.file_number, AttachmentTable.Columns.need_remove, AttachmentTable.Columns.content_id, AttachmentTable.Columns.id_tenant); var insert_query = create_insert_query(); int i, len; for (i = 0, len = attachments.Count; i < len; i++) { var attachment = attachments[i]; insert_query .Values(id_mail, attachment.fileName, attachment.storedName, attachment.contentType, attachment.size, attachment.fileNumber, 0, attachment.contentId, id_tenant); if (i % 100 == 0 && i != 0 || i + 1 == len) { db.ExecuteNonQuery(insert_query); insert_query = create_insert_query(); } } ReCountAttachments(db, id_mail); }
public void SetMessagesTag(IEnumerable <int> messageIds, int tagId) { var idMessages = messageIds as IList <int> ?? messageIds.ToList(); if (!idMessages.Any()) { return; } CreateInsertDelegate createInsertQuery = () => new SqlInsert(TagMailTable.TABLE_NAME) .IgnoreExists(true) .InColumns(TagMailTable.Columns.MailId, TagMailTable.Columns.TagId, TagMailTable.Columns.Tenant, TagMailTable.Columns.User); var insertQuery = createInsertQuery(); int i, messagessLen; for (i = 0, messagessLen = idMessages.Count; i < messagessLen; i++) { var messageId = idMessages[i]; insertQuery .Values(messageId, tagId, Tenant, CurrentUserId); if ((i % 100 != 0 || i == 0) && i + 1 != messagessLen) { continue; } Db.ExecuteNonQuery(insertQuery); insertQuery = createInsertQuery(); } }
private void SetMessagesTag(DbManager db, int tenant, string user, IEnumerable <int> messageIds, int tagId) { var idMessages = messageIds as IList <int> ?? messageIds.ToList(); if (!idMessages.Any()) { return; } CreateInsertDelegate createInsertQuery = () => new SqlInsert(TagMailTable.Name) .IgnoreExists(true) .InColumns(TagMailTable.Columns.MailId, TagMailTable.Columns.TagId, TagMailTable.Columns.Tenant, TagMailTable.Columns.User); var insertQuery = createInsertQuery(); int i, messagessLen; for (i = 0, messagessLen = idMessages.Count; i < messagessLen; i++) { var messageId = idMessages[i]; insertQuery .Values(messageId, tagId, tenant, user); if ((i % 100 != 0 || i == 0) && i + 1 != messagessLen) { continue; } db.ExecuteNonQuery(insertQuery); insertQuery = createInsertQuery(); } UpdateTagsCount(db, tenant, user, new[] { tagId }); }
private void SetMessageTags(DbManager db, int tenant, string user, int messageId, IEnumerable <int> tagIds) { var idTags = tagIds as IList <int> ?? tagIds.ToList(); if (!idTags.Any()) { return; } CreateInsertDelegate createInsertQuery = () => new SqlInsert(TagMailTable.name) .IgnoreExists(true) .InColumns(TagMailTable.Columns.id_mail, TagMailTable.Columns.id_tag, TagMailTable.Columns.id_tenant, TagMailTable.Columns.id_user); var insertQuery = createInsertQuery(); int i, tagsLen; for (i = 0, tagsLen = idTags.Count; i < tagsLen; i++) { var tagId = idTags[i]; insertQuery .Values(messageId, tagId, tenant, user); if ((i % 100 != 0 || i == 0) && i + 1 != tagsLen) { continue; } db.ExecuteNonQuery(insertQuery); insertQuery = createInsertQuery(); } UpdateTagsCount(db, tenant, user, idTags); }
private void SetMessagesTag(DbManager db, int tenant, string user, IEnumerable <int> message_ids, int tag_id) { var id_messages = message_ids as IList <int> ?? message_ids.ToList(); if (!id_messages.Any()) { return; } CreateInsertDelegate create_insert_query = () => new SqlInsert(MAIL_TAG_MAIL) .IgnoreExists(true) .InColumns(TagMailFields.id_mail, TagMailFields.id_tag, TagMailFields.id_tenant, TagMailFields.id_user); var insert_query = create_insert_query(); int i, messagess_len; for (i = 0, messagess_len = id_messages.Count; i < messagess_len; i++) { var message_id = id_messages[i]; insert_query .Values(message_id, tag_id, tenant, user); if (i % 100 == 0 && i != 0 || i + 1 == messagess_len) { db.ExecuteNonQuery(insert_query); insert_query = create_insert_query(); } } UpdateTagsCount(db, tenant, user, new[] { tag_id }); }