コード例 #1
0
        public MailDto Save([FromBody] InputMailDto mailDto)
        {
            var isUpdatePassword = (mailDto.Id != 0 && !string.IsNullOrEmpty(mailDto.Password)) ||
                                   mailDto.Id == 0;

            var secret            = configuration.GetValue <string>("PasswordSecret");
            var encryptedPassword = encryption.Encrypt(mailDto.Password, secret);

            var mail = new Mail
            {
                Id           = mailDto.Id,
                EmailAddress = mailDto.EmailAddress,
                EnableSsl    = mailDto.EnableSsl,
                Host         = mailDto.Host,
                Name         = mailDto.Name,
                Password     = isUpdatePassword ? encryptedPassword : string.Empty,
                Port         = mailDto.Port,
                UserId       = user.Id
            };

            context.Update(mail);
            context.Entry(mail).Property(x => x.Password).IsModified = isUpdatePassword;
            context.SaveChanges();

            return(new MailDto
            {
                Id = mail.Id,
                EmailAddress = mail.EmailAddress,
                EnableSsl = mail.EnableSsl,
                Host = mail.Host,
                Name = mail.Name,
                Port = mail.Port
            });
        }
コード例 #2
0
        public MailOutputDto Save([FromBody] MailDto mailDto)
        {
            var setPassword = (mailDto.Id != 0 && !string.IsNullOrEmpty(mailDto.Password)) ||
                              mailDto.Id == 0;
            var secret = Guid.NewGuid().ToString();
            var mail   = new Mail
            {
                Id           = mailDto.Id,
                EmailAddress = mailDto.EmailAddress,
                EnableSsl    = mailDto.EnableSsl,
                Host         = mailDto.Host,
                Name         = mailDto.Name,
                Password     = setPassword ? encryption.Encrypt(mailDto.Password, secret) : string.Empty,
                Port         = mailDto.Port,
                UserId       = user.Id
            };

            context.Update(mail);
            context.Entry(mail).Property(x => x.Password).IsModified = setPassword;
            context.SaveChanges();

            return(new MailOutputDto
            {
                Id = mail.Id,
                EmailAddress = mail.EmailAddress,
                EnableSsl = mail.EnableSsl,
                Host = mail.Host,
                Name = mail.Name,
                Password = mailDto.Password,
                Port = mail.Port,
                Secret = setPassword ? secret : null
            });
        }