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