public JsonResult AddEditClinica(AdicionarClinicaViewModel viewModal)
        {
            if (viewModal.Codigo > 0)
            {
                var clinicaOld = _clinicaRepositorio.ObterPor(viewModal.Codigo).Status; //Recuperando o Status Atual(Antes da mudança) da clinica na base.
                var resposta = AlterarClinica(viewModal);
                if (clinicaOld != StatusDaClinica.Ativo && viewModal.Status == StatusDaClinica.Ativo) //Comparação Se o Status anterior diferente de Ativo e se o novo Status é Igual a Ativo.
                {
                    using (var integraClinicaWs = new IntegraEssencial())
                    {
                        //Se o e-mail não existir na base do site essencial dispara o e-mail, para caso de a clinica ter tido status = Ativo algum dia não disparar o e-mail novamente para cada alteração.
                        if (integraClinicaWs.VerifyUser(resposta.Clinica.Email) == "FALSE")//Novo metodo no service VerifyUser(String email). Verifica se o e-mail existe na base do Essencial, se sim TRUE, se não FALSE.
                        {
                            integraClinicaWs.AddNewUser(resposta.Clinica.Email, "clinica#123", resposta.Clinica.Codigo, resposta.Clinica.Nome); //Envia Um e-mail com a senha.
                        }
                        else
                        {
                            integraClinicaWs.AddNewUserNotify(resposta.Clinica.Email, "clinica#123", resposta.Clinica.Codigo, resposta.Clinica.Nome);
                        }
                    }
                }
                return Json(new { resposta.Erros, resposta.Sucesso, Clinica = resposta.Clinica.ToViewModel() });

            }
            else
            {
                var resposta = AdicionarClinica(viewModal);
                if (resposta.Sucesso)
                {
                    resposta.Clinica.ToViewModel();

                    //Comentei esta rotina, pois o metodo AdicionarClinica já dispara um e-mail, assim estava disparando dois e-mails para o mesmo usuário com senhas diferentes.

                    //new IntegraEssencial().AddNewUser(viewModal.Email, "admin#123", viewModal.Codigo,
                    //                                  viewModal.Nome);
                }
                return Json(new { resposta.Erros, resposta.Sucesso, Clinica = resposta.Clinica.ToViewModel() });
            }
        }
        private AdicionarClinicaResposta AdicionarClinica(AdicionarClinicaViewModel viewModal)
        {
            var requisicao = new AdicionarClinicaRequisicao
            {
                CodigoDoPrograma = Session.ProgramaAtivo().Codigo,
                CodigoDoResponsavel = User.ToPessoa().Usuario.Perfil.Grupo.Codigo,
                Nome = viewModal.Nome,
                RazaoSocial = viewModal.RazaoSocial,
                Cnpj = viewModal.Cnpj,
                InscricaoEstadual = viewModal.InscricaoEstadual,
                Endereco = viewModal.Endereco,
                Cidade = viewModal.Cidade,
                Uf = viewModal.Uf,
                Telefone = viewModal.Telefone,
                Contato = viewModal.Contato,
                CodigoDoRepresentante = viewModal.CodigoDoRepresentante,
                CodigoDoRepresentanteRegional = viewModal.CodigoDoRepresentanteRegional,
                CodigoDoGerente = viewModal.CodigoDoGerente,
                Observacoes = viewModal.Observacoes,
                Status = viewModal.Status,
                Email = viewModal.Email,
                ValorInfusao = viewModal.ValorInfusao,
                Bairro = viewModal.Bairro
            };

            var resposta = _clinicaServicoDeAplicacao.AdicionarClinica(requisicao);

            if (resposta.Sucesso)
            {
                if (resposta.Clinica.Status == StatusDaClinica.Ativo) //Verifica se o status é igual a true para disparar o e-mail.
                {
                    using (var integraClinicaWs = new IntegraEssencial())
                    {
                        integraClinicaWs.AddNewUser(viewModal.Email, "clinica#123", resposta.Clinica.Codigo,
                                                    resposta.Clinica.Nome);
                    }
                }
            }

            return resposta;
        }