コード例 #1
0
ファイル: frmPrincipal.cs プロジェクト: radtek/Gradual
        private void cmdEnviarMensagem_Click(object sender, EventArgs e)
        {
            try
            {
                // Envia mensagem ao servico de ordens
                MensagemResponseBase response = _servicoOrdens.ProcessarMensagem(_mensagemRequest);

                // Inclui linha de detalhe
                _mensagens.Add(
                    new Mensagem()
                {
                    Request  = _mensagemRequest,
                    Response = response
                });

                // Seleciona tab de mensagens
                tab.SelectedTab = tabMensagens;

                // Atualiza o grid
                grdMensagens.DataSource = null;
                grdMensagens.DataSource = _mensagens;
                grdMensagens.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }
コード例 #2
0
        private MensagemResponseBase SalvarPermissoes(TransporteLimiteBovespa pParametro)
        {
            List <PermissaoRiscoAssociadaInfo> lItesnPermissoes = new List <PermissaoRiscoAssociadaInfo>();
            PermissaoRiscoAssociadaInfo        lPrai;

            foreach (string item in pParametro.Permissoes)
            {
                if (item != null)
                {
                    lPrai = new PermissaoRiscoAssociadaInfo();
                    lPrai.PermissaoRisco = new PermissaoRiscoInfo()
                    {
                        CodigoPermissao = int.Parse(item)
                    };

                    lPrai.CodigoCliente = pParametro.CodBovespa;

                    lItesnPermissoes.Add(lPrai);
                }
            }

            SalvarPermissoesRiscoAssociadasRequest lreqSalvar = new SalvarPermissoesRiscoAssociadasRequest()
            {
                PermissoesAssociadas   = lItesnPermissoes,
                DescricaoUsuarioLogado = base.UsuarioLogado.Nome,
                IdUsuarioLogado        = base.UsuarioLogado.Id
            };

            MensagemResponseBase lresPer = ServicoRegrasRisco.SalvarPermissoesRiscoAssociadasNovoOMS(lreqSalvar);

            return(lresPer);
        }
コード例 #3
0
ファイル: AlterarSenha.aspx.cs プロジェクト: radtek/Gradual
        public string ResponderSalvar()
        {
            try
            {
                ValidarHistoricoDeSenha();

                if (GetSenhaNova.Length <= 5)
                {
                    return(RetornarErroAjax("Nova senha deve conter mais que 6 digitos."));
                }
                else if (GetSenhaNova != GetSenhaConfirma)
                {
                    return(RetornarErroAjax("Nova senha não confere com a comfirmação da senha."));
                }
                else
                {
                    AlterarSenhaRequest lReq = new AlterarSenhaRequest()
                    {
                        SenhaAtual             = Criptografia.CalculateMD5Hash(GetSenhaAtual),
                        NovaSenha              = Criptografia.CalculateMD5Hash(GetSenhaNova),
                        CodigoSessao           = this.CodigoSessao,
                        DescricaoUsuarioLogado = base.UsuarioLogado.Nome,
                        IdUsuarioLogado        = base.UsuarioLogado.Id
                    };

                    MensagemResponseBase lRes = ServicoSeguranca.AlterarSenha(lReq);

                    GravarHistoricoSenha();

                    if (lRes.StatusResposta == MensagemResponseStatusEnum.OK)
                    {
                        base.RegistrarLogAlteracao(new Contratos.Dados.Cadastro.LogIntranetInfo()
                        {
                            IdLoginClienteAfetado = base.UsuarioLogado.Id, DsObservacao = string.Concat("Senha alterada para o cliente: ", base.UsuarioLogado.Id)
                        });
                        return(RetornarSucessoAjax("Senha alterada com sucesso"));
                    }
                    else
                    {
                        if (lRes.StatusResposta == MensagemResponseStatusEnum.ErroNegocio)
                        {
                            string lCritica = "";
                            foreach (var item in lRes.Criticas)
                            {
                                lCritica += item.Descricao + Environment.NewLine;
                            }
                            return(RetornarErroAjax(lCritica));
                        }
                        else
                        {
                            return(RetornarErroAjax(lRes.DescricaoResposta));
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                return(RetornarErroAjax("Não foi possível alterar a senha: " + ex.Message));
            }
        }
コード例 #4
0
        public bool ValidarAssinaturaEletronica(string pAssinaturaEletronica)
        {
            try
            {
                IServicoSeguranca lServicoSeguranca = InstanciarServico <IServicoSeguranca>();

                MensagemResponseBase lResponse = lServicoSeguranca.ValidarAssinaturaEletronica(new ValidarAssinaturaEletronicaRequest()
                {
                    AssinaturaEletronica = Criptografia.CalculateMD5Hash(pAssinaturaEletronica),

                    CodigoSessao = UsuarioLogado.CodigoDaSessao,
                });

                DisporServico(lServicoSeguranca);

                if (lResponse.StatusResposta == MensagemResponseStatusEnum.OK)
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
            catch (Exception ex)
            {
                Logger.ErrorFormat("Erro [{0}] em PaginaBase.ValidarAssinaturaEletronica()\r\n    >>Stack:\r\n{1}"
                                   , ex.Message
                                   , ex.StackTrace);

                return(false);
            }
        }
コード例 #5
0
        private void btnNovoPerfil_Click(object sender, EventArgs e)
        {
            SalvarPerfilRequest lReq = new SalvarPerfilRequest()
            {
                CodigoSessao = this.lblCodigoSessao.Text,
                Perfil       = new PerfilInfo()
                {
                    CodigoPerfil = "0",
                    NomePerfil   = this.txtNovoPerfil.Text
                }
            };

            try
            {
                MensagemResponseBase lRes = servicoSeguranca.SalvarPerfil(lReq);
                if (lRes.StatusResposta == MensagemResponseStatusEnum.OK)
                {
                    MessageBox.Show("Perfil criado com sucesso", "Cadastro de Perfil", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                else
                {
                    MessageBox.Show(lRes.DescricaoResposta, "Cadastro de Perfil", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Cadastro de Perfil", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
コード例 #6
0
        public string ResponderExcluir()
        {
            string lretorno        = string.Empty;
            string lUsuarioGrupoId = Request["Id"];
            RemoverUsuarioGrupoRequest lRequest = new RemoverUsuarioGrupoRequest()
            {
                CodigoSessao       = this.CodigoSessao,
                CodigoUsuarioGrupo = lUsuarioGrupoId
            };
            MensagemResponseBase lResponse = null;

            try
            {
                lResponse = this.ServicoSeguranca.RemoverUsuarioGrupo(lRequest);

                if (lResponse.StatusResposta == MensagemResponseStatusEnum.OK)
                {
                    lretorno = RetornarSucessoAjax("Grupo excluido com sucesso!");
                    base.RegistrarLogExclusao();
                }
                else
                {
                    lretorno = RetornarErroAjax(lResponse.DescricaoResposta);
                }
            }
            catch (Exception ex)
            {
                lretorno = RetornarErroAjax(ex.Message);
            }
            return(lretorno);
        }
コード例 #7
0
        private void AssociarPermissaoAoObjeto(MensagemResponseBase lItem, string nomePermissao, bool associar)
        {
            //nomePermissao = lDados.Interface.Trim() + "Executar";
            PermissaoInfo lPermissao = this.ListaDePermissoes.Find(p => p.GetType().Name == nomePermissao);

            if ((lPermissao != null) &&
                ((lItem != null)) &&
                ((lItem is ReceberUsuarioGrupoResponse)))
            {
                PermissaoAssociadaInfo lPermAssoc = ((ReceberUsuarioGrupoResponse)lItem).UsuarioGrupo.Permissoes.Find(p => p.CodigoPermissao == lPermissao.CodigoPermissao);
                if (lPermAssoc == null)
                {
                    if (associar)
                    {
                        ((ReceberUsuarioGrupoResponse)lItem).UsuarioGrupo.Permissoes.Add(new PermissaoAssociadaInfo()
                        {
                            CodigoPermissao = lPermissao.CodigoPermissao,
                            Status          = PermissaoAssociadaStatusEnum.Permitido
                        });
                    }
                }
                else
                {
                    if (!associar)
                    {
                        ((ReceberUsuarioGrupoResponse)lItem).UsuarioGrupo.Permissoes.Remove(lPermAssoc);
                    }
                }
            }
            else
            {
                PermissaoAssociadaInfo lPermAssoc = ((ReceberUsuarioGrupoResponse)lItem).UsuarioGrupo.Permissoes.Find(p => p.CodigoPermissao == lPermissao.CodigoPermissao);

                if (lPermAssoc == null)
                {
                    if (associar)
                    {
                        ((ReceberUsuarioResponse)lItem).Usuario.Permissoes.Add(new PermissaoAssociadaInfo()
                        {
                            CodigoPermissao = lPermissao.CodigoPermissao,
                            Status          = PermissaoAssociadaStatusEnum.Permitido
                        });
                    }
                }
                else
                {
                    if (!associar)
                    {
                        ((ReceberUsuarioResponse)lItem).Usuario.Permissoes.Remove(lPermAssoc);
                    }
                }
            }
        }
コード例 #8
0
        public string ResponderCadastrar()
        {
            string lretorno    = string.Empty;
            string lObjetoJson = Request["ObjetoJson"];

            TransporteSegurancaPermissaoSeguranca lDadosPermissao = null;

            MensagemResponseBase   lResponse = null;
            SalvarPermissaoRequest lRequest  = new SalvarPermissaoRequest();

            PermissaoInfo lPermissaoInfo = new PermissaoInfo();

            try
            {
                lDadosPermissao = JsonConvert.DeserializeObject <TransporteSegurancaPermissaoSeguranca>(lObjetoJson);

                lPermissaoInfo = lDadosPermissao.ToPermissaoInfo();

                lRequest.Permissao = lPermissaoInfo;

                lRequest.CodigoSessao = this.CodigoSessao;

                lResponse = ServicoSeguranca.SalvarPermissao(lRequest);

                if (lResponse.StatusResposta == MensagemResponseStatusEnum.OK)
                {
                    if (string.IsNullOrWhiteSpace(lDadosPermissao.Id))
                    {
                        base.RegistrarLogInclusao();
                    }
                    else
                    {
                        base.RegistrarLogAlteracao();
                    }

                    lretorno = RetornarSucessoAjax(new TransporteRetornoDeCadastro(lResponse.DescricaoResposta), "Permissão cadastrada com sucesso");
                }
                else
                {
                    lretorno = RetornarErroAjax(lResponse.DescricaoResposta);
                }
            }
            catch (Exception ex)
            {
                lretorno = RetornarErroAjax("Erro durante o envio do request para cadastrar permissão", ex);
            }
            return(lretorno);
        }
コード例 #9
0
        public string ResponderAtualizar()
        {
            string lretorno    = string.Empty;
            string lObjetoJson = Request["ObjetoJson"];

            TransporteSegurancaGrupo lDadosGrupo = null;

            MensagemResponseBase lResponse = null;

            SalvarUsuarioGrupoRequest lRequest = new SalvarUsuarioGrupoRequest();

            try
            {
                lDadosGrupo = JsonConvert.DeserializeObject <TransporteSegurancaGrupo>(lObjetoJson);
                ReceberUsuarioGrupoRequest lRequestGrupo = new ReceberUsuarioGrupoRequest()
                {
                    CodigoSessao       = this.CodigoSessao,
                    CodigoUsuarioGrupo = lDadosGrupo.Id
                };

                UsuarioGrupoInfo lUsuarioGrupoInfo = ((ReceberUsuarioGrupoResponse)this.ServicoSeguranca.ReceberUsuarioGrupo(lRequestGrupo)).UsuarioGrupo;

                lUsuarioGrupoInfo.NomeUsuarioGrupo = lDadosGrupo.Nome;

                lRequest.UsuarioGrupo = lUsuarioGrupoInfo;
                lRequest.CodigoSessao = this.CodigoSessao;

                lResponse = ServicoSeguranca.SalvarUsuarioGrupo(lRequest);

                if (lResponse.StatusResposta == MensagemResponseStatusEnum.OK)
                {
                    lretorno = RetornarSucessoAjax("Grupo alterado com sucesso");
                    base.RegistrarLogAlteracao();
                }
                else
                {
                    lretorno = RetornarErroAjax(lResponse.DescricaoResposta);
                }
            }
            catch (Exception ex)
            {
                lretorno = RetornarErroAjax(ex.Message);
            }

            return(lretorno);
        }
コード例 #10
0
        public string ResponderAtualizar()
        {
            string lretorno    = string.Empty;
            string lObjetoJson = Request["ObjetoJson"];

            TransporteSegurancaPerfil lDadosPerfil = null;

            MensagemResponseBase lResponse = null;

            SalvarPerfilRequest lRequest = new SalvarPerfilRequest();

            try
            {
                lDadosPerfil = JsonConvert.DeserializeObject <TransporteSegurancaPerfil>(lObjetoJson);
                ReceberPerfilRequest lRequestPerfil = new ReceberPerfilRequest()
                {
                    CodigoSessao = this.CodigoSessao,
                    CodigoPerfil = lDadosPerfil.Id
                };

                PerfilInfo lPerfilInfo = ((ReceberPerfilResponse)this.ServicoSeguranca.ReceberPerfil(lRequestPerfil)).Perfil;

                lPerfilInfo.NomePerfil = lDadosPerfil.Nome;

                lRequest.Perfil       = lPerfilInfo;
                lRequest.CodigoSessao = this.CodigoSessao;

                lResponse = ServicoSeguranca.SalvarPerfil(lRequest);

                if (lResponse.StatusResposta == MensagemResponseStatusEnum.OK)
                {
                    lretorno = RetornarSucessoAjax("Perfil alterado com sucesso");
                    base.RegistrarLogAlteracao();
                }
                else
                {
                    lretorno = RetornarErroAjax(lResponse.DescricaoResposta);
                }
            }
            catch (Exception ex)
            {
                lretorno = RetornarErroAjax(ex.Message);
            }
            return(lretorno);
        }
コード例 #11
0
        public string ResponderExcluir()
        {
            string lIdItem = Request["Id"];

            try
            {
                string lCodigoUsuario = lIdItem.Split('|')[0];
                string lCodigoGrupo   = lIdItem.Split('|')[1];

                ReceberUsuarioRequest lRequest = new ReceberUsuarioRequest()
                {
                    CodigoSessao  = this.CodigoSessao,
                    CodigoUsuario = lCodigoUsuario
                };

                ReceberUsuarioResponse lResponse = ServicoSeguranca.ReceberUsuario(lRequest);

                if (lResponse.StatusResposta == MensagemResponseStatusEnum.OK)
                {
                    lResponse.Usuario.Grupos.Remove(lCodigoGrupo);

                    MensagemResponseBase lREsponseAUx = ServicoSeguranca.SalvarUsuario(new SalvarUsuarioRequest()
                    {
                        CodigoSessao = this.CodigoSessao,
                        Usuario      = lResponse.Usuario
                    });

                    if (lREsponseAUx.StatusResposta == MensagemResponseStatusEnum.OK)
                    {
                        base.RegistrarLogExclusao();
                        return(RetornarSucessoAjax("Grupo removido com sucesso."));
                    }
                    else
                    {
                        return(RetornarErroAjax(lREsponseAUx.DescricaoResposta));
                    }
                }
            }
            catch (Exception ex)
            {
                return(RetornarErroAjax(ex.Message));
            }
            return(string.Empty);
        }
コード例 #12
0
ファイル: ServicoMensageria.cs プロジェクト: radtek/Gradual
        /// <summary>
        /// Para o tipo do request informado, acha o tipo do response
        /// </summary>
        /// <param name="tipoRequest"></param>
        /// <returns></returns>
        private MensagemResponseBase criarResponsePadrao(Type tipoRequest)
        {
            // Prepara resposta
            MensagemResponseBase resposta = null;

            // Cria a resposta relacionada e adiciona a lista de criticas da validação
            object[] attrs = tipoRequest.GetCustomAttributes(typeof(MensagemAttribute), true);
            if (attrs.Length > 0 && ((MensagemAttribute)attrs[0]).TipoMensagemResponse != null)
            {
                resposta = (MensagemResponseBase)Activator.CreateInstance(((MensagemAttribute)attrs[0]).TipoMensagemResponse);
            }
            else
            {
                resposta = new MensagemErroValidacaoResponse();
            }

            // Retorna
            return(resposta);
        }
コード例 #13
0
        private void cmdEnviarMensagem_Click(object sender, EventArgs e)
        {
            try
            {
                // Envia mensagem ao servico de ordens
                MensagemResponseBase response = _servicoOrdens.ProcessarMensagem(_mensagemRequest);

                // Inclui linha de detalhe
                _mensagens.Add(
                    new Mensagem()
                {
                    Request  = _mensagemRequest,
                    Response = response
                });
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }
コード例 #14
0
        public string ResponderCadastrar()
        {
            string lretorno    = string.Empty;
            string lObjetoJson = Request["ObjetoJson"];

            MensagemResponseBase      lResponse         = null;
            TransporteSegurancaGrupo  lDadosGrupo       = null;
            SalvarUsuarioGrupoRequest lRequest          = new SalvarUsuarioGrupoRequest();
            UsuarioGrupoInfo          lUsuarioGrupoInfo = new UsuarioGrupoInfo();

            try
            {
                lDadosGrupo = JsonConvert.DeserializeObject <TransporteSegurancaGrupo>(lObjetoJson);

                lRequest.UsuarioGrupo = lDadosGrupo.ToUsuarioGrupoInfo();

                lRequest.UsuarioGrupo.CodigoUsuarioGrupo = "0";

                lRequest.CodigoSessao = this.CodigoSessao;

                lResponse = ServicoSeguranca.SalvarUsuarioGrupo(lRequest);

                if (lResponse.StatusResposta == MensagemResponseStatusEnum.OK)
                {
                    base.RegistrarLogInclusao();

                    lretorno = RetornarSucessoAjax(new TransporteRetornoDeCadastro(lUsuarioGrupoInfo.CodigoUsuarioGrupo), "Grupo cadastrado com sucesso");
                }
                else
                {
                    lretorno = RetornarErroAjax(lResponse.DescricaoResposta);
                }
            }
            catch (Exception ex)
            {
                lretorno = RetornarErroAjax(ex.Message);
            }

            return(lretorno);
        }
コード例 #15
0
ファイル: Login.aspx.cs プロジェクト: radtek/Gradual
        private string ResponderLogout()
        {
            string lCodigoSessao = this.CodigoSessao;

            Session.Clear();

            MensagemResponseBase res = ServicoSeguranca.EfetuarLogOut(new MensagemRequestBase()
            {
                CodigoSessao = lCodigoSessao
            });

            if (res.StatusResposta == MensagemResponseStatusEnum.OK)
            {
                RedirecionarPara("Login.aspx");

                return(RESPOSTA_JA_ENVIADA_PELA_FUNCAO);
            }
            else
            {
                return(RetornarErroAjax(res.DescricaoResposta));
            }
        }
コード例 #16
0
        public string RealizarLogout(string pCodigoDaSessao)
        {
            IServicoSeguranca lServicoSeguranca = this.InstanciarServico <IServicoSeguranca>();

            MensagemResponseBase lResponse = lServicoSeguranca.EfetuarLogOut(new MensagemRequestBase()
            {
                CodigoSessao = pCodigoDaSessao
            });

            DisporServico(lServicoSeguranca);

            if (lResponse.StatusResposta == MensagemResponseStatusEnum.OK)
            {
                this.UsuariosLogados.Remove(UsuarioLogado.IdDoUsuarioTipoInt);

                Session.Clear();

                return(RetornarSucessoAjax("ok"));
            }
            else
            {
                return(RetornarErroAjax(lResponse.DescricaoResposta));
            }
        }
コード例 #17
0
        private string ResponderLogout()
        {
            IServicoSeguranca lServicoSeguranca = this.InstanciarServico <IServicoSeguranca>();

            MensagemResponseBase lResponse = lServicoSeguranca.EfetuarLogOut(new MensagemRequestBase()
            {
                CodigoSessao = this.CodigoSessao
            });

            DisporServico(lServicoSeguranca);

            if (lResponse.StatusResposta == MensagemResponseStatusEnum.OK)
            {
                Session.Clear();

                ///RedirecionarPara("../Login.aspx");
                //Response.Redirect()
                return(CONST_RESPOSTA_JA_ENVIADA_PELA_FUNCAO);
            }
            else
            {
                return(RetornarErroAjax(lResponse.DescricaoResposta));
            }
        }
コード例 #18
0
ファイル: ServicoMensageria.cs プロジェクト: radtek/Gradual
        /// <summary>
        /// Processa a mensagem solicitada.
        /// Faz o roteamento da mensagem para o devido serviço
        /// </summary>
        /// <param name="parametros"></param>
        /// <returns></returns>
        public MensagemResponseBase ProcessarMensagem(MensagemRequestBase parametros)
        {
            // Prepara resposta
            MensagemResponseBase resposta = null;

            // Bloco de controle
            try
            {
                // Passa a mensagem pela validação
                ValidarMensagemResponse respostaValidacao =
                    _servicoValidacao.ValidarMensagem(
                        new ValidarMensagemRequest()
                {
                    CodigoSessao = parametros.CodigoSessao,
                    Mensagem     = parametros
                });

                // Verifica o retorno da validação
                if (respostaValidacao.ContextoValidacao.MensagemValida)
                {
                    // Tipo da mensagem
                    Type tipoMensagem = parametros.GetType();

                    // Acha o método que processa este tipo de mensagem
                    MethodInfo metodo = _tiposConhecidos[tipoMensagem];

                    // Tipo do servico
                    Type tipoServico = metodo.ReflectedType;

                    // Pega instancia do servico
                    object servico = Ativador.Get(tipoServico);

                    // Executa
                    resposta = (MensagemResponseBase)metodo.Invoke(servico, new object[] { parametros });

                    // Faz o log da mensagem
                    logger.Info("ServicoMensageria.ProcessarMensagem: " + Serializador.TransformarEmString(parametros));
                }
                else
                {
                    // Cria resposta
                    resposta = criarResponsePadrao(parametros.GetType());

                    // Preenche a resposta
                    resposta.CodigoMensagemRequest = parametros.CodigoMensagem;
                    resposta.Criticas          = respostaValidacao.Criticas;
                    resposta.StatusResposta    = MensagemResponseStatusEnum.ErroValidacao;
                    resposta.DescricaoResposta = constDescricaoErroValidacao;

                    // Faz o log
                    logger.Error("ServicoMensageria.ProcessarMensagem (Erro de Validação): " + Serializador.TransformarEmString(respostaValidacao));
                }
            }
            catch (Exception ex)
            {
                // Faz o log
                logger.Error("Erro ao processar mensagem: " + parametros.CodigoMensagem, ex);

                // Cria resposta
                resposta = criarResponsePadrao(parametros.GetType());

                // Preenche a resposta
                resposta.CodigoMensagemRequest = parametros.CodigoMensagem;
                resposta.StatusResposta        = MensagemResponseStatusEnum.ErroPrograma;
                resposta.DescricaoResposta     = ex.ToString();
            }

            // Retorna
            return(resposta);
        }
コード例 #19
0
ファイル: Permissoes.aspx.cs プロジェクト: radtek/Gradual
        public string ResponderSalvar()
        {
            string lRetorno     = string.Empty;
            string lObjetoJson  = Request.Params["ObjetoJson"];
            string TipoDeObjeto = Request["TipoDeObjetoPai"];

            MensagemRequestBase  lRequest;
            MensagemResponseBase lResponse;

            bool lTinhaGTI   = false;
            bool lTinhaStock = false;

            try
            {
                TransporteSegurancaPermissao lDados = JsonConvert.DeserializeObject <TransporteSegurancaPermissao>(lObjetoJson);

                switch (TipoDeObjeto)
                {
                case "Usuario":
                    lRequest = new ReceberUsuarioRequest()
                    {
                        CodigoSessao  = this.CodigoSessao,
                        CodigoUsuario = lDados.ParentId
                    };
                    lResponse = this.ServicoSeguranca.ReceberUsuario((ReceberUsuarioRequest)lRequest);
                    break;

                case "Grupo":
                    lRequest = new ReceberUsuarioGrupoRequest()
                    {
                        CodigoSessao       = this.CodigoSessao,
                        CodigoUsuarioGrupo = lDados.ParentId
                    };
                    lResponse = this.ServicoSeguranca.ReceberUsuarioGrupo((ReceberUsuarioGrupoRequest)lRequest);
                    break;

                case "Perfil":
                    lRequest = new ReceberPerfilRequest()
                    {
                        CodigoSessao = this.CodigoSessao,
                        CodigoPerfil = lDados.ParentId
                    };
                    lResponse = this.ServicoSeguranca.ReceberPerfil((ReceberPerfilRequest)lRequest);
                    break;

                default:
                    return(RetornarErroAjax("Só é possível salvar permissões para grupos, usuários e perfis."));
                }

                if (lResponse.StatusResposta == MensagemResponseStatusEnum.OK)
                {
                    MensagemRequestBase  lRequestBase;
                    MensagemResponseBase lResponseBase = new MensagemResponseBase();

                    if (lResponse is ReceberUsuarioResponse)
                    {
                        PermissaoAssociadaInfo lPermissao;
                        UsuarioInfo            lUsuario = ((ReceberUsuarioResponse)lResponse).Usuario;

                        //precisa verificar todas que tinha antes pra não re-enviar o email quando uma outra permissão que não a do GTI ou Stock forem adicionadas
                        foreach (Gradual.OMS.Seguranca.Lib.PermissaoAssociadaInfo lPerm in lUsuario.Permissoes)
                        {
                            if (lPerm.CodigoPermissao.ToUpper() == ConfiguracoesValidadas.PermissaoDeAcesso_GTI.ToUpper())
                            {
                                lTinhaGTI = true;
                            }

                            if (lPerm.CodigoPermissao.ToUpper() == ConfiguracoesValidadas.PermissaoDeAcesso_Stock.ToUpper())
                            {
                                lTinhaStock = true;
                            }
                        }

                        lUsuario.Permissoes.Clear();

                        var lCount = default(int);

                        do
                        {
                            lPermissao = new PermissaoAssociadaInfo()
                            {
                                CodigoPermissao = lDados.Permissoes.Count > 0 ? lDados.Permissoes[lCount] : string.Empty,
                                Status          = PermissaoAssociadaStatusEnum.Permitido
                            };

                            lUsuario.Permissoes.Add(lPermissao);

                            lRequestBase = new SalvarUsuarioRequest()
                            {
                                CodigoSessao = this.CodigoSessao,
                                Usuario      = lUsuario
                            };

                            lResponseBase = ServicoSeguranca.SalvarUsuario((SalvarUsuarioRequest)lRequestBase);

                            if (lResponseBase.StatusResposta == MensagemResponseStatusEnum.OK)
                            {
                                base.RegistrarLogInclusao(new LogIntranetInfo()
                                {
                                    CdBovespaClienteAfetado = lUsuario.CodigoUsuario.DBToInt32(),

                                    DsObservacao = string.Format("Cód. Usuário logado: {0}; Nome do cliente: {1}; e-Mail:", base.UsuarioLogado.Id, lUsuario.Nome, lUsuario.Email),
                                });

                                if (TipoDeObjeto == "Usuario")
                                {
                                    if (!lTinhaGTI && lPermissao.CodigoPermissao.ToUpper() == ConfiguracoesValidadas.PermissaoDeAcesso_GTI.ToUpper())
                                    {
                                        EnviarEmailDePermissaoGTI(lUsuario.CodigoUsuario.DBToInt32(), "Gradual Trader Interface (GTI)");
                                    }

                                    if (!lTinhaStock && lPermissao.CodigoPermissao.ToUpper() == ConfiguracoesValidadas.PermissaoDeAcesso_Stock.ToUpper())
                                    {
                                        EnviarEmailDePermissaoGTI(lUsuario.CodigoUsuario.DBToInt32(), "Stock Market");
                                    }
                                }
                            }

                            lCount++;
                        } while (lDados.Permissoes.Count > lCount);
                    }
                    else if (lResponse is ReceberUsuarioGrupoResponse)
                    {
                        PermissaoAssociadaInfo lPermissao;
                        UsuarioGrupoInfo       lUsuarioGrupo = ((ReceberUsuarioGrupoResponse)lResponse).UsuarioGrupo;
                        foreach (string itemPermissao in lDados.Permissoes)
                        {
                            lPermissao = new PermissaoAssociadaInfo()
                            {
                                CodigoPermissao = itemPermissao,
                                Status          = PermissaoAssociadaStatusEnum.Permitido
                            };
                            lUsuarioGrupo.Permissoes.Add(lPermissao);

                            lRequestBase = new SalvarUsuarioGrupoRequest()
                            {
                                CodigoSessao = this.CodigoSessao,
                                UsuarioGrupo = lUsuarioGrupo
                            };
                            lResponseBase = ServicoSeguranca.SalvarUsuarioGrupo((SalvarUsuarioGrupoRequest)lRequestBase);
                        }
                    }
                    else
                    {
                        PermissaoAssociadaInfo lPermissao;
                        PerfilInfo             lPerfil = ((ReceberPerfilResponse)lResponse).Perfil;
                        lPerfil.Permissoes.Clear();

                        foreach (string itemPermissao in lDados.Permissoes)
                        {
                            lPermissao = new PermissaoAssociadaInfo()
                            {
                                CodigoPermissao = itemPermissao,
                                Status          = PermissaoAssociadaStatusEnum.Permitido
                            };
                            lPerfil.Permissoes.Add(lPermissao);

                            lRequestBase = new SalvarPerfilRequest()
                            {
                                CodigoSessao = this.CodigoSessao,
                                Perfil       = lPerfil
                            };
                            lResponseBase = ServicoSeguranca.SalvarPerfil((SalvarPerfilRequest)lRequestBase);
                        }
                    }

                    if (lResponseBase.StatusResposta == MensagemResponseStatusEnum.OK)
                    {
                        return(RetornarSucessoAjax("Permissão associada com sucesso."));
                    }
                    else
                    {
                        return(RetornarErroAjax(lResponseBase.DescricaoResposta));
                    }
                }
                else
                {
                    return(RetornarErroAjax(lResponse.DescricaoResposta));
                }
            }
            catch (Exception ex)
            {
                return(RetornarErroAjax(ex.Message));
            }
        }
コード例 #20
0
        private string ResponderSalvar()
        {
            string lObjetoJson = Request.Params["ObjetoJson"];

            TransporteRiscoAssociacaoCliente lTransporte = JsonConvert.DeserializeObject <TransporteRiscoAssociacaoCliente>(lObjetoJson);

            if (lTransporte.EhExpirarLimite)
            {
                try
                {
                    SalvarParametroRiscoClienteRequest lSalvarParametroRiscoClienteRequest = new SalvarParametroRiscoClienteRequest()
                    {
                        ParametroRiscoCliente = new ParametroRiscoClienteInfo()
                        {
                            CodigoCliente          = lTransporte.CodBovespa.DBToInt32(),
                            CodigoParametroCliente = lTransporte.CodigoParametro,
                        }
                    };

                    lSalvarParametroRiscoClienteRequest.IdUsuarioLogado        = base.UsuarioLogado.Id;
                    lSalvarParametroRiscoClienteRequest.DescricaoUsuarioLogado = base.UsuarioLogado.Nome;
                    var lSalvarClientePermissaoParametroResponse = this.ServicoRegrasRisco.SalvarExpirarLimite(lSalvarParametroRiscoClienteRequest);

                    if (lSalvarClientePermissaoParametroResponse.StatusResposta == MensagemResponseStatusEnum.OK)
                    {
                        base.RegistrarLogExclusao(new Contratos.Dados.Cadastro.LogIntranetInfo()
                        {
                            CdBovespaClienteAfetado = lTransporte.CodBovespa.DBToInt32(), DsObservacao = "Expirar Limite"
                        });                                                                                                                                                                           //--> Registrando o Log.

                        return(RetornarSucessoAjax(new TransporteRetornoDeCadastro(lSalvarClientePermissaoParametroResponse.CodigoMensagem), "Permissão realizada com sucesso."));
                    }
                    else if (lSalvarClientePermissaoParametroResponse.StatusResposta == MensagemResponseStatusEnum.ErroNegocio)
                    {
                        return(RetornarSucessoAjax(lSalvarClientePermissaoParametroResponse.DescricaoResposta));
                    }
                    else
                    {
                        return(RetornarErroAjax(lSalvarClientePermissaoParametroResponse.DescricaoResposta));
                    }
                }
                catch (Exception ex)
                {
                    return(RetornarErroAjax(ex.Message));
                }
            }
            else if (lTransporte.EhRenovacaoLimite || lTransporte.EhParametro)
            {
                SalvarClientePermissaoParametroRequest lReq = new SalvarClientePermissaoParametroRequest()
                {
                    Associacao             = lTransporte.ToAssociacaoClienteRiscoInfo(),
                    DescricaoUsuarioLogado = base.UsuarioLogado.Nome,
                    IdUsuarioLogado        = base.UsuarioLogado.Id
                };

                try
                {
                    SalvarClientePermissaoParametroResponse lREs = this.ServicoRegrasRisco.SalvarAssociacao(lReq);

                    if (lREs.StatusResposta == MensagemResponseStatusEnum.OK)
                    {
                        base.RegistrarLogAlteracao(new Contratos.Dados.Cadastro.LogIntranetInfo()
                        {
                            CdBovespaClienteAfetado = lTransporte.CodBovespa.DBToInt32(), DsObservacao = "Renovar Limite"
                        });                                                                                                                                                                            //--> Registrando o Log.

                        return(RetornarSucessoAjax(new TransporteRetornoDeCadastro(lREs.Associacao.CodigoAssociacao), "Permissão realizada com sucesso."));
                    }
                    else if (lREs.StatusResposta == MensagemResponseStatusEnum.ErroNegocio)
                    {
                        return(RetornarSucessoAjax(lREs.DescricaoResposta));
                    }
                    else
                    {
                        return(RetornarErroAjax(lREs.DescricaoResposta));
                    }
                }
                catch (Exception ex)
                {
                    return(RetornarErroAjax(ex.Message));
                }
            }
            else
            {
                List <PermissaoRiscoAssociadaInfo> itensPermissoes = new List <PermissaoRiscoAssociadaInfo>();
                PermissaoRiscoAssociadaInfo        prai;
                int codigo = 0;

                foreach (string item in lTransporte.Permissoes)
                {
                    prai = new PermissaoRiscoAssociadaInfo();
                    prai.PermissaoRisco = new PermissaoRiscoInfo()
                    {
                        CodigoPermissao = int.Parse(item)
                    };

                    if (lTransporte.CodigoGrupo != 0)
                    {
                        prai.Grupo = new GrupoInfo()
                        {
                            CodigoGrupo = lTransporte.CodigoGrupo
                        }
                    }
                    ;

                    codigo = 0;

                    if (int.TryParse(lTransporte.CodBovespa, out codigo))
                    {
                        prai.CodigoCliente = codigo;
                    }
                    else
                    {
                        throw new Exception("Cliente não possui CBLC.");
                    }

                    itensPermissoes.Add(prai);
                }

                SalvarPermissoesRiscoAssociadasRequest lreqSalvar = new SalvarPermissoesRiscoAssociadasRequest()
                {
                    PermissoesAssociadas   = itensPermissoes,
                    DescricaoUsuarioLogado = base.UsuarioLogado.Nome,
                    IdUsuarioLogado        = base.UsuarioLogado.Id
                };

                MensagemResponseBase lresPer = ServicoRegrasRisco.SalvarPermissoesRiscoAssociadas(lreqSalvar);

                if (lresPer.StatusResposta == MensagemResponseStatusEnum.OK)
                {
                    base.RegistrarLogInclusao(new Contratos.Dados.Cadastro.LogIntranetInfo()
                    {
                        CdBovespaClienteAfetado = lTransporte.CodBovespa.DBToInt32(),
                        DsObservacao            = string.Concat("Inclusão de limite para o cliente: id_cliente = ", lTransporte.CodigoClienteParametro.ToString())
                    });

                    return(RetornarSucessoAjax("Permissões associadas com sucesso."));
                }
                else
                {
                    return(RetornarErroAjax(lresPer.DescricaoResposta));
                }
            }
        }