public static void AdicionarLivroNegocios(NegocioBase registroNegocios, int maxItensLNG) { LNGDadosNegocio dadosLNG = new LNGDadosNegocio(); dadosLNG.Compradora = registroNegocios.Negocio.Compradora; dadosLNG.Hora = registroNegocios.Negocio.Hora; dadosLNG.NumeroNegocio = registroNegocios.Negocio.NumeroNegocio; dadosLNG.Preco = registroNegocios.Negocio.Preco; dadosLNG.Quantidade = registroNegocios.Negocio.Quantidade; dadosLNG.Vendedora = registroNegocios.Negocio.Vendedora; registroNegocios.LivroNegocios.Insert(0, dadosLNG); if (registroNegocios.LivroNegocios.Count > maxItensLNG) { registroNegocios.LivroNegocios.RemoveRange(maxItensLNG - 1, registroNegocios.LivroNegocios.Count - maxItensLNG); } }
/// <summary> /// Monta a string da mensagem de negocio pra envio ao HomeBroker /// </summary> /// <param name="registroNegocio"></param> /// <returns></returns> public static string montarLivroNegociosHomeBroker(NegocioBase registroNegocio) { StringBuilder builder = new StringBuilder(); NEGDadosNegocio negocio = registroNegocio.Negocio; builder.Append(MDSUtils.montaHeaderHomeBroker(registroNegocio.Instrumento, ConstantesMDS.TIPO_REQUISICAO_HB_LIVRO_NEGOCIOS, registroNegocio.TipoBolsa)); int numItens = 30; //TODO: parametrizar int posicaoItem = 0; while (posicaoItem < numItens && posicaoItem < registroNegocio.LivroNegocios.Count) { LNGDadosNegocio item = registroNegocio.LivroNegocios[posicaoItem]; if (item != null) { if (!String.IsNullOrEmpty(item.NumeroNegocio)) { builder.Append(item.NumeroNegocio.PadLeft(8, '0')); } else { builder.Append("00000000"); } if (!String.IsNullOrEmpty(item.Hora)) { builder.Append(item.Hora.PadLeft(6, '0')); } else { builder.Append("000000"); } builder.Append(item.Preco.ToString("0000000000.00")); builder.Append(String.Format("{0:d12}", item.Quantidade)); if (!String.IsNullOrEmpty(item.Compradora)) { builder.Append(item.Compradora.PadLeft(8, '0')); } else { builder.Append("00000000"); } if (!String.IsNullOrEmpty(item.Vendedora)) { builder.Append(item.Vendedora.PadLeft(8, '0')); } else { builder.Append("00000000"); } } posicaoItem++; } return(builder.ToString()); }
/// <summary> /// Monta um dicionario de valores para envio ao streamer correspondendo a uma /// entrada no livro de negocios. /// </summary> /// <param name="acao"></param> /// <param name="posicao"></param> /// <param name="item"></param> /// <returns></returns> public static Dictionary <string, string> montarItemLivroNegociosStreamer(int acao, int posicao, LNGDadosNegocio item, int casasDecimais) { Dictionary <string, string> mensagem = new Dictionary <String, String>(); mensagem.Add(ConstantesMDS.HTTP_LIVRO_NEGOCIOS_ACAO, acao.ToString()); mensagem.Add(ConstantesMDS.HTTP_LIVRO_NEGOCIOS_POSICAO, posicao.ToString()); mensagem.Add(ConstantesMDS.HTTP_LIVRO_NEGOCIOS_NUMERO_NEGOCIO, (item.NumeroNegocio != null ? item.NumeroNegocio.Trim() : "0")); mensagem.Add(ConstantesMDS.HTTP_LIVRO_NEGOCIOS_HORA, item.Hora); mensagem.Add(ConstantesMDS.HTTP_LIVRO_NEGOCIOS_PRECO, String.Format("{0:f" + casasDecimais + "}", item.Preco).Replace('.', ',')); mensagem.Add(ConstantesMDS.HTTP_LIVRO_NEGOCIOS_QUANTIDADE, item.Quantidade.ToString()); mensagem.Add(ConstantesMDS.HTTP_LIVRO_NEGOCIOS_COMPRADORA, item.Compradora); mensagem.Add(ConstantesMDS.HTTP_LIVRO_NEGOCIOS_VENDEDORA, item.Vendedora); return(mensagem); }