public override Medico ExecProcess(RegisterViewModel value, Crud operation) { EmpresaSecurity <SecurityContext> empresaSecurity = new EmpresaSecurity <SecurityContext>(); int _empresaId = int.Parse(System.Configuration.ConfigurationManager.AppSettings["empresaId"]); int _sistemaId = int.Parse(System.Configuration.ConfigurationManager.AppSettings["sistemaId"]); int _areaAtendimentoId = int.Parse(System.Configuration.ConfigurationManager.AppSettings["secretariaId"]); #region Incluir o usuário UsuarioRepository usuarioRepository = new UsuarioRepository() { login = value.login.ToLower(), nome = value.nome.ToUpper(), empresaId = _empresaId, dt_cadastro = DateTime.Now, situacao = "D", isAdmin = "N", senha = value.senha, uri = value.uri, confirmacaoSenha = value.confirmacaoSenha }; usuarioRepository = empresaSecurity.SetUsuario(usuarioRepository); if (usuarioRepository.mensagem.Code > 0) { throw new ArgumentException(usuarioRepository.mensagem.Message); } #endregion #region Vincular médico ao usuário value.cpf = value.cpf.Replace(".", "").Replace("-", ""); value.ufCRM = value.ufCRM.ToUpper(); value.login = value.login.ToLower(); MedicoViewModel medicoViewModel = (from med in db.Medicos where (med.CRM == value.CRM && med.ufCRM == value.ufCRM) || med.cpf == value.cpf || med.email1 == value.login select new MedicoViewModel() { associadoId = med.associadoId, CRM = med.CRM, ufCRM = med.ufCRM, cpf = med.cpf, nome = med.nome }).FirstOrDefault(); value.associadoId = medicoViewModel.associadoId; Medico medico = Find(value); medico.CRM = value.CRM; medico.ufCRM = value.ufCRM; medico.cpf = value.cpf; medico.usuarioId = usuarioRepository.usuarioId; medico.email1 = value.login; db.Entry(medico).State = EntityState.Modified; #endregion #region Insere o chamado para a secretaria chamadoViewModel = new ChamadoViewModel() { associadoId = value.associadoId.Value, areaAtendimentoId = _areaAtendimentoId, dt_chamado = DateTime.Now, assunto = "Solicitação de ativação do usuário " + (usuarioRepository.nome.Length >= 15 ? usuarioRepository.nome.Substring(0, 15) : usuarioRepository.nome.Substring(0, usuarioRepository.nome.Length)), situacao = "A" }; chamadoViewModel.mensagemOriginal = "<h4>Liberação de acesso ao sistema para um novo usuário</h4>"; chamadoViewModel.mensagemOriginal += "<hr>"; chamadoViewModel.mensagemOriginal += "<p><b>Nome do Usuário: </b>" + value.nome + "</p>"; chamadoViewModel.mensagemOriginal += "<p><b>Nome Associado: </b>" + medicoViewModel.nome + "</p>"; chamadoViewModel.mensagemOriginal += "<p><b>Login: </b>" + value.login + "</p>"; chamadoViewModel.mensagemOriginal += "<p><b>CRM: </b>" + value.CRM + "</p>"; chamadoViewModel.mensagemOriginal += "<p><b>UF CRM: </b>" + value.ufCRM + "</p>"; chamadoViewModel.mensagemOriginal += "<p><b>CPF: </b>" + value.cpf + "</p>"; chamadoViewModel.mensagemOriginal += "<hr>"; chamadoViewModel.mensagemOriginal += "<p><a href=\"../Associado/Edit?associadoId=" + value.associadoId.ToString() + "\">Clique aqui</a> para acessar o cadastro do respectivo associado</p>"; chamadoViewModel.uri = value.uri; ChamadoModel chamadoModel = new ChamadoModel(); chamadoModel.db = db; Chamado chamado = chamadoModel.ExecProcess(chamadoViewModel, Crud.INCLUIR); #endregion return(medico); }