private void InserirParametroBMF() { ClienteParametroLimiteBMFInfo ClienteParametroBMFInfo = new ClienteParametroLimiteBMFInfo(); InserirLimiteClienteBMFRequest request = new InserirLimiteClienteBMFRequest(); InserirLimiteClienteBMFResponse response = new InserirLimiteClienteBMFResponse(); ServicoLimiteBMF ServicoLimiteBMF = new ServicoLimiteBMF(); ClienteParametroBMFInfo.Account = 31217; ClienteParametroBMFInfo.DataValidade = DateTime.Now.AddDays(5); ClienteParametroBMFInfo.Contrato = "DOL"; ClienteParametroBMFInfo.idClientePermissao = 30; ClienteParametroBMFInfo.QuantidadeDisponivel = 10; ClienteParametroBMFInfo.QuantidadeTotal = 10; ClienteParametroBMFInfo.RenovacaoAutomatica = 'S'; ClienteParametroBMFInfo.Sentido = "V"; request.ClienteParametroLimiteBMFInfo = ClienteParametroBMFInfo; response = ServicoLimiteBMF.AtualizarLimiteBMF(request); }
private string ResponderSalvarLimitesBmf() { string lRetorno = string.Empty; try { var lServico = new ServicoLimiteBMF(); var listAntigaInstrumentos = Session["ListaLimitesInstrumentos_" + GetCodBmf] as List <ClienteParametroBMFInstrumentoInfo>; var listAntigaContratos = Session["ListaLimites_" + GetCodBmf] as List <ClienteParametroLimiteBMFInfo>; string lAntigoStatusContratos = RetornarSucessoAjax(listAntigaContratos, ""); string lAntigoStatusInstrumentos = RetornarSucessoAjax(listAntigaInstrumentos, ""); List <ClienteParametroLimiteBMFInfo> lListContrato = Session["LimitesContrato_" + GetCodBmf] as List <ClienteParametroLimiteBMFInfo>; List <ClienteParametroBMFInstrumentoInfo> lListInstrumento = Session["LimitesInstrumento_" + GetCodBmf] as List <ClienteParametroBMFInstrumentoInfo>; InserirLimiteClienteBMFRequest lRequestContrato = new InserirLimiteClienteBMFRequest(); InserirLimiteBMFInstrumentoRequest lRequestInstrumento = new InserirLimiteBMFInstrumentoRequest(); List <ContratoAuxIntrumento> llistAuxContrato = new List <ContratoAuxIntrumento>(); //Atualiza os dados para salvar a quantidade var lInstrumentoEncontradoCompra = lListInstrumento.Find(instru => { return(instru.Sentido == 'C' && instru.Instrumento == GetInstrumento); }); var lInstrumentoEncontradoVenda = lListInstrumento.Find(instru => { return(instru.Sentido == 'V' && instru.Instrumento == GetInstrumento); }); lListInstrumento.Remove(lInstrumentoEncontradoCompra); lListInstrumento.Remove(lInstrumentoEncontradoVenda); lInstrumentoEncontradoCompra.QtDisponivel = Convert.ToInt32(Request["lCliente_Qtde_Compra_Instrumento"].ToString()); lInstrumentoEncontradoCompra.QtTotalInstrumento = Convert.ToInt32(Request["lCliente_Qtde_Compra_Instrumento"].ToString()); lInstrumentoEncontradoVenda.QtDisponivel = Convert.ToInt32(Request["lCliente_Qtde_Venda_Instrumento"].ToString()); lInstrumentoEncontradoVenda.QtTotalInstrumento = Convert.ToInt32(Request["lCliente_Qtde_Venda_Instrumento"].ToString()); lInstrumentoEncontradoCompra.QuantidadeMaximaOferta = Convert.ToInt32(Request["lCliente_Qtde_Maxima_Instrumento"].ToString()); lInstrumentoEncontradoVenda.QuantidadeMaximaOferta = Convert.ToInt32(Request["lCliente_Qtde_Maxima_Instrumento"].ToString()); lListInstrumento.Add(lInstrumentoEncontradoCompra); lListInstrumento.Add(lInstrumentoEncontradoVenda); var lContratoEncontrados = lListContrato.FindAll(contrato => { return(contrato.Contrato == GetContrato); }); foreach (ClienteParametroLimiteBMFInfo info in lContratoEncontrados) { lListContrato.Remove(info); ClienteParametroLimiteBMFInfo infoAux = info; infoAux.QuantidadeTotal = infoAux.QuantidadeDisponivel = (info.Sentido == "C") ? Convert.ToInt32(Request["lCliente_Qtde_Compra"].ToString()) : Convert.ToInt32(Request["lCliente_Qtde_Venda"].ToString()); infoAux.QuantidadeMaximaOferta = Convert.ToInt32(Request["lCliente_Qtde_Maxima_Contrato"].ToString()); lListContrato.Add(infoAux); } string lNovoStatusContratos = RetornarSucessoAjax(lListContrato, ""); string lNovoStatusInstrumentos = RetornarSucessoAjax(lListInstrumento, ""); foreach (ClienteParametroLimiteBMFInfo info in lListContrato) { lRequestContrato.ClienteParametroLimiteBMFInfo = info; InserirLimiteClienteBMFResponse lResponseContrato = lServico.AtualizarLimiteBMF(lRequestContrato); ContratoAuxIntrumento lAux = new ContratoAuxIntrumento(); lAux.Contrato = info.Contrato; lAux.IdClienteParametroBMF = lResponseContrato.IdClienteParametroBMF == 0 ? info.idClienteParametroBMF : lResponseContrato.IdClienteParametroBMF; lAux.Sentido = info.Sentido; llistAuxContrato.Add(lAux); } foreach (ClienteParametroBMFInstrumentoInfo info in lListInstrumento) { lRequestInstrumento.LimiteBMFInstrumento = info; var lAux = llistAuxContrato.Find(aux => { return(aux.Sentido == info.Sentido.ToString() && aux.Contrato == info.Instrumento.Substring(0, 3)); }); if (lAux != null) { lRequestInstrumento.LimiteBMFInstrumento.IdClienteParametroBMF = lAux.IdClienteParametroBMF; } lServico.AtualizarLimiteInstrumentoBMF(lRequestInstrumento); } base.RegistrarLogInclusao(new Contratos.Dados.Cadastro.LogIntranetInfo() { //--> Registrando o Log. CdBovespaClienteAfetado = this.GetCodBmf, DsObservacao = string.Concat("Contratos Antigos: ", lAntigoStatusContratos, " Instrumentos Antigos: ", lAntigoStatusInstrumentos) + string.Concat(" Contratos Novos: ", lNovoStatusContratos, " Instrumentos Novos: ", lNovoStatusInstrumentos) }); ListarLimiteBMFRequest lRequest = new ListarLimiteBMFRequest(); lRequest.Account = GetCodBmf; ListarLimiteBMFResponse lResponse = lServico.ObterLimiteBMFCliente(lRequest); Session["LimitesInstrumento_" + GetCodBmf] = Session["ListaLimitesInstrumentos_" + GetCodBmf] = null; Session["LimitesContrato_" + GetCodBmf] = Session["ListaLimites_" + GetCodBmf] = null; if (lResponse.ListaLimites != null && lResponse.ListaLimitesInstrumentos != null) { Session["LimitesContrato_" + GetCodBmf] = Session["ListaLimites_" + GetCodBmf] = lResponse.ListaLimites; Session["LimitesInstrumento_" + GetCodBmf] = Session["ListaLimitesInstrumentos_" + GetCodBmf] = lResponse.ListaLimitesInstrumentos; } /* * ILimiteManager lmtMng = Ativador.Get<ILimiteManager>(); * ReloadLimitsResponse resp = new ReloadLimitsResponse(); * ReloadLimitsRequest req = new ReloadLimitsRequest(); * req.ReloadSecurityList = false; // true: para forçar o recarregamento de cadastro de papeis / false para carregar somente parâmetros e limites (mais rápido) * lmtMng.ReloadLimitStructures(req); */ lRetorno = RetornarSucessoAjax("Limites BMF configurados com sucesso."); } catch (Exception ex) { RetornarErroAjax("Erro ao Salvar limites BMF", ex); } return(lRetorno); }