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 }); }
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 }); }