public ConfiguracaoServidorEmailDTO GetConfiguracaoServidorEmail()
        {
            try
            {
                ConfiguracaoServidorEmail configuracaoServidorEmail;

                var lista = _configuracaoServidorEmailRepository.GetAll().ToList();

                if (lista.Count == 0)
                {
                    configuracaoServidorEmail = ConfiguracaoServidorEmailFactory.CreateConfiguracaoServidorEmail(false, null, null, null, null, false, null);
                    SalvarConfiguracaoServidorEmail(configuracaoServidorEmail);
                }
                else if (lista.Count == 1)
                {
                    configuracaoServidorEmail = lista.Single();
                }
                else
                {
                    throw new Exception("Existe mais de uma ConfiguracaoServidorEmail quando deveria existir só uma.");
                }

                var adapter = TypeAdapterFactory.CreateAdapter();
                return(adapter.Adapt <ConfiguracaoServidorEmail, ConfiguracaoServidorEmailDTO>(configuracaoServidorEmail));
            }
            catch (Exception ex)
            {
                throw ManipuladorDeExcecao.TrateExcecao(ex);
            }
        }
        public void UpdateConfiguracaoServidorEmail(ConfiguracaoServidorEmailDTO configuracaoServidorEmailDTO)
        {
            try
            {
                if (configuracaoServidorEmailDTO == null)
                {
                    throw new ArgumentNullException("configuracaoServidorEmailDTO.");
                }

                ConfiguracaoServidorEmail persistido;

                var lista = _configuracaoServidorEmailRepository.GetAll().ToList();

                if (lista.Count == 0)
                {
                    GetConfiguracaoServidorEmail();
                    persistido = _configuracaoServidorEmailRepository.GetAll().Single();
                }
                else if (lista.Count == 1)
                {
                    persistido = lista.Single();
                }
                else
                {
                    throw new Exception("Existe mais de uma ConfiguracaoServidorEmail quando deveria existir só uma.");
                }

                string senha = persistido.Senha;
                if (!string.IsNullOrWhiteSpace(configuracaoServidorEmailDTO.Senha))
                {
                    senha = configuracaoServidorEmailDTO.Senha;
                }

                var corrente = ConfiguracaoServidorEmailFactory.CreateConfiguracaoServidorEmail(
                    configuracaoServidorEmailDTO.UtilizarEnvioDeEmail,
                    configuracaoServidorEmailDTO.Conta,
                    senha,
                    configuracaoServidorEmailDTO.Smtp,
                    configuracaoServidorEmailDTO.Porta,
                    configuracaoServidorEmailDTO.Ssl,
                    configuracaoServidorEmailDTO.PastaRaiz);

                corrente.Id = persistido.Id;
                AlterarConfiguracaoServidorEmail(persistido, corrente);
            }
            catch (Exception ex)
            {
                throw ManipuladorDeExcecao.TrateExcecao(ex);
            }
        }