예제 #1
0
        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);
        }