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);
            }
        }
        public ActionResult Index(ConfiguracaoServidorEmailDTO configuracaoServidorEmailDTO)
        {
            try
            {
                _configuracaoService.UpdateConfiguracaoServidorEmail(configuracaoServidorEmailDTO);

                return(JavaScript(
                           "MensagemSucesso('A configuração foi salva com sucesso.');" +
                           "carregarPaginaAjax('" + Url.Action("Index", "Configuracao") + "');"));
            }
            catch (Exception ex)
            {
                TratamentoErro.Tratamento(this, ex);
                return(View(configuracaoServidorEmailDTO));
            }
        }