示例#1
0
        public static MailAccount AsMailAccount(this MailAccountEntity source, bool mapPassword = true)
        {
            if (source == null)
            {
                return(null);
            }

            var mapped = new MailAccount
            {
                Enabled         = source.Enabled,
                Id              = source.Id,
                SmtpHost        = source.SmtpHost,
                UserId          = source.UserId,
                SmtpUsername    = source.SmtpUsername,
                User            = source.User.AsMailUser(),
                FromDisplayName = source.FromDisplayName,
                FromAddress     = source.FromAddress,
                EnableSsl       = source.EnableSsl,
                SmtpPort        = source.SmtpPort,
                CreationDateUtc = source.CreationDateUtc,
                RedirectToDisk  = source.RedirectToDisk
            };

            if (mapPassword)
            {
                mapped.SmtpPassword = source.SmtpPassword;
            }

            return(mapped);
        }
示例#2
0
        public void AsMailAccount_GivenMailAccountEntity_ShouldReturnMailAccount()
        {
            // Act
            var account = new MailAccountEntity().AsMailAccount();

            // Assert
            Assert.IsNotNull(account);
            Assert.IsInstanceOf <MailAccount>(account);
        }
示例#3
0
        public static IList <LabelEntity> FindByAccount(MailAccountEntity account, ISession session)
        {
            IList <LabelEntity> labels = session.CreateCriteria <LabelEntity>()
                                         .Add(Restrictions.Eq("MailAccountEntity", account))
                                         .Add(Restrictions.Eq("Active", true))
                                         .List <LabelEntity>();

            return(labels);
        }
示例#4
0
        public static String GetNextColor(MailAccountEntity labelAccount, ISession session)
        {
            IList <LabelEntity> accountLabels = Label.FindByAccount(labelAccount, session);

            for (Int16 currentColor = 0; currentColor < Label.LabelColors.Count; currentColor++)
            {
                if (!accountLabels.Any(x => x.Color == Label.LabelColors[currentColor]))
                {
                    return(Label.LabelColors[currentColor]);
                }
            }
            return(Label.DefaultColor);
        }
示例#5
0
        public static MailAccount FindMainMailAccount(String username, ISession session)
        {
            UserEntity userEntity = session.CreateCriteria <UserEntity>()
                                    .Add(Restrictions.Eq("Username", username))
                                    .UniqueResult <UserEntity>();

            MailAccountEntity entity = session.CreateCriteria <MailAccountEntity>()
                                       .Add(Restrictions.Eq("User", userEntity))
                                       .Add(Restrictions.Eq("IsMainAccount", true))
                                       .Add(Restrictions.Eq("Active", true))
                                       .UniqueResult <MailAccountEntity>();

            return(new MailAccount(entity));
        }
示例#6
0
        public virtual void SaveOrUpdate(ISession session)
        {
            MailAccount oldAccount = MailAccount.FindByAddress(this.Entity.Address, session, false);

            if (oldAccount != null)
            {
                oldAccount.Entity.User          = this.Entity.User;
                oldAccount.Entity.Address       = this.Entity.Address;
                oldAccount.Entity.Password      = this.Entity.Password;
                oldAccount.Entity.IsMainAccount = this.Entity.IsMainAccount;
                oldAccount.Entity.Active        = this.Entity.Active;
                this.Entity = oldAccount.Entity;
            }
            session.SaveOrUpdate(this.Entity);
        }
示例#7
0
        public static void AreEqual(MailAccountEntity source, MailAccount target, bool checkPassword = true)
        {
            Assert.AreEqual(source.Id, target.Id);
            Assert.AreEqual(source.Enabled, target.Enabled);
            Assert.AreEqual(source.CreationDateUtc, target.CreationDateUtc);
            Assert.AreEqual(source.UserId, target.UserId);
            Assert.AreEqual(source.SmtpUsername, target.SmtpUsername);
            Assert.AreEqual(source.SmtpHost, target.SmtpHost);
            Assert.AreEqual(source.SmtpPort, target.SmtpPort);
            Assert.AreEqual(source.EnableSsl, target.EnableSsl);
            Assert.AreEqual(source.FromAddress, target.FromAddress);
            Assert.AreEqual(source.FromDisplayName, target.FromDisplayName);
            Assert.AreEqual(source.RedirectToDisk, target.RedirectToDisk);

            if (checkPassword)
            {
                Assert.AreEqual(source.SmtpPassword, target.SmtpPassword);
            }

            RnAssert.AreEqual(source.User, target.User, checkPassword);
        }
示例#8
0
        public static MailAccount FindByAddress(String emailAddress, ISession session, Boolean activeRequired = true)
        {
            ICriteria criteria = session.CreateCriteria <MailAccountEntity>()
                                 .Add(Restrictions.Eq("Address", emailAddress));

            if (activeRequired)
            {
                criteria.Add(Restrictions.Eq("Active", true));
            }

            MailAccountEntity account = criteria.UniqueResult <MailAccountEntity>();

            if (account == null)
            {
                return(null);
            }
            else
            {
                return(new MailAccount(account));
            }
        }
示例#9
0
 public MailAccountEntityBuilder()
 {
     _account = new MailAccountEntity();
 }
示例#10
0
 public MailAccount(MailAccountEntity accountEntity)
 {
     this.Entity   = accountEntity;
     this.MySender = new Sender(this.Entity.Address, this.Entity.Password);
 }