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));
        }
Beispiel #2
0
        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;
        }