public Int32 CreateNotificacao(NOTIFICACAO noti, USUARIO usuarioLogado)
        {
            try
            {
                //Completa campos
                USUARIO adm = _usuarioService.GetAdministrador(usuarioLogado.ASSI_CD_ID);
                noti.ASSI_CD_ID       = usuarioLogado.ASSI_CD_ID;
                noti.CANO_CD_ID       = 1;
                noti.NOTI_DT_EMISSAO  = DateTime.Today.Date;
                noti.NOTI_DT_VALIDADE = DateTime.Today.Date.AddDays(30);
                noti.NOTI_DT_VISTA    = null;
                noti.NOTI_IN_ATIVO    = 1;
                noti.NOTI_IN_STATUS   = 1;
                noti.NOTI_IN_NIVEL    = 1;
                noti.NOTI_IN_VISTA    = 0;
                noti.NOTI_NM_TITULO   = "Solicição de Alteração de Cadastro";
                noti.USUA_CD_ID       = adm.USUA_CD_ID;

                // Gera Notificação
                Int32 volta = _notiService.Create(noti);

                // Recupera template e-mail
                String header = _usuarioService.GetTemplate("SOLCAD").TEMP_TX_CABECALHO;
                String body   = _usuarioService.GetTemplate("SOLCAD").TEMP_TX_CORPO;
                String data   = _usuarioService.GetTemplate("SOLCAD").TEMP_TX_DADOS;

                // Prepara dados do e-mail
                header = header.Replace("{Nome}", adm.USUA_NM_NOME);
                data   = data.Replace("{Data}", DateTime.Today.Date.ToLongDateString());
                data   = data.Replace("{Usuario}", usuarioLogado.USUA_NM_NOME);
                data   = data.Replace("{Solicitacao}", noti.NOTI_TX_TEXTO);

                // Concatena
                String emailBody = header + body + data;

                // Prepara e-mail e enviar
                CONFIGURACAO conf     = _usuarioService.CarregaConfiguracao(usuarioLogado.ASSI_CD_ID);
                Email        mensagem = new Email();
                mensagem.ASSUNTO             = "Solicitacao de Alteracao Cadastral";
                mensagem.CORPO               = emailBody;
                mensagem.DEFAULT_CREDENTIALS = false;
                mensagem.EMAIL_DESTINO       = adm.USUA_NM_EMAIL;
                mensagem.EMAIL_EMISSOR       = conf.CONF_NM_EMAIL_EMISSOO;
                mensagem.ENABLE_SSL          = true;
                mensagem.NOME_EMISSOR        = "Sistema";
                mensagem.PORTA               = conf.CONF_NM_PORTA_SMTP;
                mensagem.PRIORIDADE          = System.Net.Mail.MailPriority.High;
                mensagem.SENHA_EMISSOR       = conf.CONF_NM_SENHA_EMISSOR;
                mensagem.SMTP = conf.CONF_NM_HOST_SMTP;

                // Envia e-mail
                Int32 voltaMail = CommunicationPackage.SendEmail(mensagem);
                return(volta);
            }
            catch (Exception ex)
            {
                throw;
            }
        }
        public Int32 ValidateCreate(NOTIFICACAO item, USUARIO usuario, Int32?idAss)
        {
            try
            {
                // Verifica existencia prévia

                // Completa objeto
                item.NOTI_IN_ATIVO = 1;

                // Monta Log
                LOG log = new LOG
                {
                    LOG_DT_DATA     = DateTime.Now,
                    USUA_CD_ID      = usuario.USUA_CD_ID,
                    ASSI_CD_ID      = idAss.Value,
                    LOG_NM_OPERACAO = "AddNOTI",
                    LOG_IN_ATIVO    = 1,
                    LOG_TX_REGISTRO = Serialization.SerializeJSON <NOTIFICACAO>(item)
                };

                // Persiste
                Int32 volta = _baseService.Create(item, log);
                return(volta);
            }
            catch (Exception ex)
            {
                throw;
            }
        }
Exemple #3
0
        public Int32 ValidateCreate(USUARIO usuario, USUARIO usuarioLogado)
        {
            try
            {
                // Verifica senhas
                if (usuario.USUA_NM_SENHA != usuario.USUA_NM_SENHA_CONFIRMA)
                {
                    return(1);
                }

                // Verifica Email
                if (!ValidarItensDiversos.IsValidEmail(usuario.USUA_NM_EMAIL))
                {
                    return(2);
                }

                // Verifica existencia prévia
                if (_usuarioService.GetByEmail(usuario.USUA_NM_EMAIL) != null)
                {
                    return(3);
                }
                if (_usuarioService.GetByLogin(usuario.USUA_NM_LOGIN) != null)
                {
                    return(4);
                }

                // Verifica admissão e demissão
                if (usuario.USUA_DT_ENTRADA != null)
                {
                    if (usuario.USUA_DT_ENTRADA.Value > DateTime.Today.Date)
                    {
                        return(5);
                    }
                }
                if (usuario.USUA_DT_SAIDA != null)
                {
                    if (usuario.USUA_DT_SAIDA.Value > DateTime.Today.Date)
                    {
                        return(6);
                    }
                    if (usuario.USUA_DS_MOTIVO_SAIDA == null)
                    {
                        return(7);
                    }
                }
                if (usuario.USUA_IN_RESPONSAVEL == 1)
                {
                    if (_usuarioService.GetResponsavel(usuario) != null)
                    {
                        return(8);
                    }
                }

                //Completa campos de usuários
                String senha = Cryptography.GenerateRandomPassword(6);
                usuario.USUA_NM_SENHA = senha;
                usuario.USUA_NM_LOGIN = usuario.USUA_NM_NOME.Substring(0, 4);
                //usuario.USUA_NM_SENHA = Cryptography.Encode(usuario.USUA_NM_SENHA);
                usuario.USUA_IN_BLOQUEADO        = 0;
                usuario.USUA_IN_PROVISORIO       = 0;
                usuario.USUA_IN_LOGIN_PROVISORIO = 0;
                usuario.USUA_NR_ACESSOS          = 0;
                usuario.USUA_NR_FALHAS           = 0;
                usuario.USUA_DT_ALTERACAO        = null;
                usuario.USUA_DT_BLOQUEADO        = null;
                usuario.USUA_DT_TROCA_SENHA      = null;
                usuario.USUA_DT_ACESSO           = DateTime.Now;
                usuario.USUA_DT_CADASTRO         = DateTime.Today.Date;
                usuario.USUA_IN_ATIVO            = 1;
                usuario.USUA_DT_ULTIMA_FALHA     = DateTime.Now;
                usuario.ASSI_CD_ID           = usuarioLogado.ASSI_CD_ID;
                usuario.USUA_DS_MOTIVO_SAIDA = null;
                usuario.USUA_IN_LOGADO       = 0;
                usuario.USUA_NR_MATRICULA    = null;

                // Monta Log
                LOG log = new LOG
                {
                    LOG_DT_DATA     = DateTime.Now,
                    USUA_CD_ID      = usuarioLogado.USUA_CD_ID,
                    ASSI_CD_ID      = usuarioLogado.ASSI_CD_ID,
                    LOG_NM_OPERACAO = "AddUSUA",
                    LOG_TX_REGISTRO = Serialization.SerializeJSON <USUARIO>(usuario),
                    LOG_IN_ATIVO    = 1
                };

                // Persiste
                Int32 volta = _usuarioService.CreateUser(usuario, log);

                // Gerar Notificação
                NOTIFICACAO noti = new NOTIFICACAO();
                noti.CANO_CD_ID       = 1;
                noti.ASSI_CD_ID       = usuario.ASSI_CD_ID;
                noti.NOTI_DT_EMISSAO  = DateTime.Today;
                noti.NOTI_DT_VALIDADE = DateTime.Today.Date.AddDays(30);
                noti.NOTI_IN_VISTA    = 0;
                noti.NOTI_NM_TITULO   = "Criação de Usuário";
                noti.NOTI_IN_ATIVO    = 1;
                noti.NOTI_IN_NIVEL    = 1;
                noti.NOTI_TX_TEXTO    = "ATENÇÃO: Usuário" + usuario.USUA_NM_NOME + " criado em " + DateTime.Today.Date.ToLongDateString() + ". Perfil: " + usuario.PERFIL.PERF_NM_NOME + ". Login: "******". Senha: " + usuario.USUA_NM_SENHA + ". Essa senha é provisória e poderá ser usada apenas uma vez, devendo ser alterada após o primeiro login.";
                noti.USUA_CD_ID       = usuario.USUA_CD_ID;
                noti.NOTI_IN_STATUS   = 1;
                Int32 volta1 = _notiService.Create(noti);

                // Recupera template e-mail
                TEMPLATE template = _usuarioService.GetTemplate("NEWUSR");
                String   header   = template.TEMP_TX_CABECALHO;
                String   body     = template.TEMP_TX_CORPO;
                String   data     = template.TEMP_TX_DADOS;

                // Prepara dados do e-mail
                data = data.Replace("{Nome}", usuario.USUA_NM_NOME);
                data = data.Replace("{Unidade}", usuario.UNIDADE.UNID_NM_EXIBE);
                data = data.Replace("{Perfil}", usuario.PERFIL.PERF_NM_NOME);
                data = data.Replace("{Data}", usuario.USUA_DT_CADASTRO.Value.ToLongDateString());
                data = data.Replace("{Login}", usuario.USUA_NM_LOGIN);
                data = data.Replace("{Senha}", usuario.USUA_NM_SENHA);

                // Concatena
                String emailBody = header + body + data;

                // Prepara e-mail e enviar
                CONFIGURACAO conf     = _usuarioService.CarregaConfiguracao(usuario.ASSI_CD_ID);
                Email        mensagem = new Email();
                mensagem.ASSUNTO             = "Inclusão de Usuário";
                mensagem.CORPO               = emailBody;
                mensagem.DEFAULT_CREDENTIALS = false;
                mensagem.EMAIL_DESTINO       = usuario.USUA_NM_EMAIL;
                mensagem.EMAIL_EMISSOR       = conf.CONF_NM_EMAIL_EMISSOO;
                mensagem.ENABLE_SSL          = true;
                mensagem.NOME_EMISSOR        = "Sistema";
                mensagem.PORTA               = conf.CONF_NM_PORTA_SMTP;
                mensagem.PRIORIDADE          = System.Net.Mail.MailPriority.High;
                mensagem.SENHA_EMISSOR       = conf.CONF_NM_SENHA_EMISSOR;
                mensagem.SMTP = conf.CONF_NM_HOST_SMTP;

                // Envia e-mail
                Int32 voltaMail = CommunicationPackage.SendEmail(mensagem);
                return(volta);
            }
            catch (Exception ex)
            {
                throw;
            }
        }
        public Int32 ValidateChangePassword(USUARIO usuario, Int32?idAss)
        {
            try
            {
                // Checa preenchimento
                if (String.IsNullOrEmpty(usuario.USUA_NOVA_SENHA))
                {
                    return(3);
                }
                if (String.IsNullOrEmpty(usuario.USUA_NM_SENHA_CONFIRMA))
                {
                    return(4);
                }

                // Verifica se senha igual a anterior
                if (usuario.USUA_NM_SENHA == usuario.USUA_NOVA_SENHA)
                {
                    return(1);
                }

                // Verifica se senha foi confirmada
                if (usuario.USUA_NOVA_SENHA != usuario.USUA_NM_SENHA_CONFIRMA)
                {
                    return(2);
                }

                //Completa e acerta campos
                //usuario.USUA_NM_SENHA = Cryptography.Encode(usuario.USUA_NM_NOVA_SENHA);
                usuario.USUA_NM_SENHA            = usuario.USUA_NOVA_SENHA;
                usuario.USUA_DT_TROCA_SENHA      = DateTime.Now.Date;
                usuario.USUA_IN_BLOQUEADO        = 0;
                usuario.USUA_IN_PROVISORIA       = 0;
                usuario.USUA_IN_LOGIN_PROVISORIO = 0;
                usuario.USUA_NR_ACESSOS          = 0;
                usuario.USUA_NR_FALHAS           = 0;
                usuario.USUA_DT_ALTERACAO        = null;
                usuario.USUA_DT_BLOQUEIO         = null;
                usuario.USUA_DT_TROCA_SENHA      = null;
                usuario.USUA_DT_ACESSO           = DateTime.Now;
                usuario.USUA_DT_CADASTRO         = DateTime.Now;
                usuario.USUA_IN_ATIVO            = 1;
                usuario.USUA_DT_ULTIMA_FALHA     = null;
                usuario.COND_CD_ID = idAss.Value;

                // Gera Notificação
                NOTIFICACAO noti = new NOTIFICACAO();
                noti.CANO_CD_ID       = 1;
                noti.COND_CD_ID       = idAss;
                noti.NOTI_DT_EMISSAO  = DateTime.Today;
                noti.NOTI_DT_CADASTRO = DateTime.Today.Date;
                noti.NOTI_DT_VALIDADE = DateTime.Today.Date.AddDays(30);
                noti.NOTI_IN_VISTA    = 0;
                noti.NOTI_NM_TITULO   = "Alteração de Senha";
                noti.NOTI_IN_ATIVO    = 1;
                noti.NOTI_TX_TEXTO    = "ATENÇÃO: A sua senha foi alterada em " + DateTime.Today.Date.ToLongDateString() + ".";
                noti.USUA_CD_ID       = usuario.USUA_CD_ID;
                noti.NOTI_IN_ENVIADA  = 1;
                noti.NOTI_IN_STATUS   = 1;
                noti.NOTI_IN_NIVEL    = 1;
                Int32 volta1 = _notiService.Create(noti);


                //Monta Log
                LOG log = new LOG
                {
                    LOG_DT_DATA     = DateTime.Now,
                    COND_CD_ID      = idAss.Value,
                    USUA_CD_ID      = usuario.USUA_CD_ID,
                    LOG_NM_OPERACAO = "ChangePWD",
                    LOG_TX_REGISTRO = Serialization.SerializeJSON <USUARIO>(usuario),
                };

                // Persiste
                return(_usuarioService.EditUser(usuario));
            }
            catch (Exception ex)
            {
                throw;
            }
        }