/// <summary> /// Garante a existencia da custodia informada /// </summary> /// <param name="codigoCustodia"></param> private CustodiaInfo garantirExistenciaCustodia(string codigoCustodia) { // Inicializa CustodiaInfo custodia = null; // Garante a criação da custodia ReceberCustodiaResponse respostaReceberCustodia = (ReceberCustodiaResponse) _servicoMensageria.ProcessarMensagem( new ReceberCustodiaRequest() { CodigoSessao = receberSessaoAdmin().CodigoSessao, CodigoCustodia = _consCodigoCustodia, CarregarCotacoes = false }); if (respostaReceberCustodia.CustodiaInfo == null) { // Cria custódia e salva SalvarCustodiaResponse respostaSalvarCustodia = (SalvarCustodiaResponse) _servicoMensageria.ProcessarMensagem( new SalvarCustodiaRequest() { CodigoSessao = receberSessaoAdmin().CodigoSessao, CustodiaInfo = new CustodiaInfo() { CodigoCustodia = _consCodigoCustodia } }); // Pega custodia custodia = respostaSalvarCustodia.Custodia; // Informa a custódia no usuário e salva UsuarioInfo usuarioTeste = receberUsuarioTeste(); usuarioTeste.Complementos.ReceberItem <ContextoOMSInfo>().CodigoCustodia = custodia.CodigoCustodia; _servicoMensageria.ProcessarMensagem( new SalvarUsuarioRequest() { CodigoSessao = _sessaoAdmin.CodigoSessao, Usuario = usuarioTeste }); } else { // Pega a custodia custodia = respostaReceberCustodia.CustodiaInfo; } // Retorna return(custodia); }
/// <summary> /// Garante uma carga inicial para custodia /// </summary> private void sincronizarCustodiaLocal() { // Recebe a custodia CustodiaInfo custodia = garantirExistenciaCustodia(_consCodigoCustodia); // Insere posições de teste custodia.Posicoes.Clear(); custodia.Posicoes.Add( new CustodiaPosicaoInfo() { CodigoAtivo = "USIM5", CodigoBolsa = "BOVESPA", QuantidadeAbertura = 100, QuantidadeAtual = 100 }); custodia.Posicoes.Add( new CustodiaPosicaoInfo() { CodigoAtivo = "PETR4", CodigoBolsa = "BOVESPA", QuantidadeAbertura = 200, QuantidadeAtual = 200 }); custodia.Posicoes.Add( new CustodiaPosicaoInfo() { CodigoAtivo = "CSAN3", CodigoBolsa = "BOVESPA", QuantidadeAbertura = 100, QuantidadeAtual = 100 }); // Salva custódia SalvarCustodiaResponse respostaSalvar = (SalvarCustodiaResponse) _servicoMensageria.ProcessarMensagem( new SalvarCustodiaRequest() { CodigoSessao = _sessaoAdmin.CodigoSessao, CustodiaInfo = custodia }); // Invalida cache _custodia = null; }
/// <summary> /// Pede sincronização de custódia com o sinacor /// </summary> private void sincronizarCustodiaSinacor(string codigoCBLC) { // Garante a existencia da custódia garantirExistenciaCustodia(_consCodigoCustodia); // Pede sincronização da custódia do cliente informado SincronizarCustodiaResponse respostaSincronizar = (SincronizarCustodiaResponse) _servicoMensageria.ProcessarMensagem( new SincronizarCustodiaRequest() { CodigoSessao = receberSessaoAdmin().CodigoSessao, CodigoClienteCBLC = codigoCBLC, CodigoCustodia = _consCodigoCustodia }); // Invalida a custodia carregada _custodia = null; }