public int Save(Entities.Mail mail) { var query = new SqlInsert(MailTable.TABLE_NAME, true) .InColumnValue(MailTable.Columns.Id, mail.Id) .InColumnValue(MailTable.Columns.MailboxId, mail.MailboxId) .InColumnValue(MailTable.Columns.Tenant, mail.Tenant) .InColumnValue(MailTable.Columns.User, mail.User) .InColumnValue(MailTable.Columns.Address, mail.Address) .InColumnValue(MailTable.Columns.Uidl, mail.Uidl) .InColumnValue(MailTable.Columns.Md5, mail.Md5) .InColumnValue(MailTable.Columns.From, MailUtil.NormalizeStringForMySql(mail.From)) .InColumnValue(MailTable.Columns.To, MailUtil.NormalizeStringForMySql(mail.To)) .InColumnValue(MailTable.Columns.Reply, mail.Reply) .InColumnValue(MailTable.Columns.Subject, MailUtil.NormalizeStringForMySql(mail.Subject)) .InColumnValue(MailTable.Columns.Cc, MailUtil.NormalizeStringForMySql(mail.Cc)) .InColumnValue(MailTable.Columns.Bcc, MailUtil.NormalizeStringForMySql(mail.Bcc)) .InColumnValue(MailTable.Columns.Importance, mail.Importance) .InColumnValue(MailTable.Columns.DateReceived, mail.DateReceived) .InColumnValue(MailTable.Columns.DateSent, mail.DateSent) .InColumnValue(MailTable.Columns.Size, mail.Size) .InColumnValue(MailTable.Columns.AttachCount, mail.AttachCount) .InColumnValue(MailTable.Columns.Unread, mail.Unread) .InColumnValue(MailTable.Columns.IsAnswered, mail.IsAnswered) .InColumnValue(MailTable.Columns.IsForwarded, mail.IsForwarded) .InColumnValue(MailTable.Columns.Stream, mail.Stream) .InColumnValue(MailTable.Columns.Folder, (int)mail.Folder) .InColumnValue(MailTable.Columns.FolderRestore, (int)mail.FolderRestore) .InColumnValue(MailTable.Columns.Spam, mail.Spam) .InColumnValue(MailTable.Columns.MimeMessageId, mail.MimeMessageId) .InColumnValue(MailTable.Columns.MimeInReplyTo, mail.MimeInReplyTo) .InColumnValue(MailTable.Columns.ChainId, mail.ChainId) .InColumnValue(MailTable.Columns.Introduction, MailUtil.NormalizeStringForMySql(mail.Introduction)) .InColumnValue(MailTable.Columns.ChainDate, mail.DateSent) .InColumnValue(MailTable.Columns.IsTextBodyOnly, mail.IsTextBodyOnly) .Identity(0, 0, true); if (mail.HasParseError) { query.InColumnValue(MailTable.Columns.HasParseError, mail.HasParseError); } if (!string.IsNullOrEmpty(mail.CalendarUid)) { query.InColumnValue(MailTable.Columns.CalendarUid, mail.CalendarUid); } return(Db.ExecuteScalar <int>(query)); }
protected Entities.Mail ToMail(object[] r) { var mail = new Entities.Mail { Id = Convert.ToInt32(r[0]), MailboxId = Convert.ToInt32(r[1]), User = Convert.ToString(r[2]), Tenant = Convert.ToInt32(r[3]), Address = Convert.ToString(r[4]), Uidl = Convert.ToString(r[5]), Md5 = Convert.ToString(r[6]), From = Convert.ToString(r[7]), To = Convert.ToString(r[8]), Reply = Convert.ToString(r[9]), Cc = Convert.ToString(r[10]), Bcc = Convert.ToString(r[11]), Subject = Convert.ToString(r[12]), Introduction = Convert.ToString(r[13]), Importance = Convert.ToBoolean(r[14]), DateReceived = Convert.ToDateTime(r[15]), DateSent = Convert.ToDateTime(r[16]), Size = Convert.ToInt32(r[17]), AttachCount = Convert.ToInt32(r[18]), Unread = Convert.ToBoolean(r[19]), IsAnswered = Convert.ToBoolean(r[20]), IsForwarded = Convert.ToBoolean(r[21]), Stream = Convert.ToString(r[22]), Folder = (FolderType)Convert.ToInt32(r[23]), FolderRestore = (FolderType)Convert.ToInt32(r[24]), Spam = Convert.ToBoolean(r[25]), IsRemoved = Convert.ToBoolean(r[26]), TimeModified = Convert.ToDateTime(r[27]), MimeMessageId = Convert.ToString(r[28]), MimeInReplyTo = Convert.ToString(r[29]), ChainId = Convert.ToString(r[30]), ChainDate = Convert.ToDateTime(r[31]), IsTextBodyOnly = Convert.ToBoolean(r[32]), HasParseError = Convert.ToBoolean(r[33]), CalendarUid = Convert.ToString(r[34]), ReadRequestStatus = Convert.ToBoolean(r[35]) }; return mail; }