Exemple #1
0
        /// <summary>
        /// Gera uma lista de cotãção com o preço de compra e venda da moeda
        /// </summary>
        /// <param name="moeda"></param>Moeda
        /// <param name="compra"></param>Lista com valores comrpa
        /// <param name="venda"></param>Lista com valores venda
        /// <returns>List<CotacaoMonetaria></returns>
        private List <CotacaoMonetaria> unionCotacaoCambial(Moeda moeda, List <CotacaoAux> compra, List <CotacaoAux> venda)
        {
            int count = compra.Count;
            List <CotacaoMonetaria> cotacoes = new List <CotacaoMonetaria>();

            if (count > venda.Count)
            {
                //use o menor
                count = venda.Count;
            }
            for (int i = 0; i < count; i++)
            {
                var c = compra[i];
                var v = venda[i];

                var cot = new CotacaoMonetaria();
                //compra e venda tem as mesma datas
                cot.DataCotacao = c.DataCotacao;
                cot.ValorCompra = c.ValorCotacao;
                cot.ValorVenda  = v.ValorCotacao;
                cot.IdMoeda     = moeda.IdMoeda;
                cot.Moeda       = moeda;
                cot.AddReference(c.SerieVo);
                cotacoes.Add(cot);
            }

            return(cotacoes);
        }
Exemple #2
0
        private CotacaoMonetaria getCotacao(TypeCodigoBacen codigoCompra, TypeCodigoBacen codigoVenda)
        {
            long codCompra = (long)codigoCompra;
            long codVenda  = (long)codigoVenda;

            var cotCompraAux = getLastCotacaoAux(codCompra);
            var cotVendaAux  = getLastCotacaoAux(codVenda);

            //a data do cotCompraAux e cotVendaAux sao iguais
            var cot = new CotacaoMonetaria(cotVendaAux.DataCotacao, cotCompraAux.ValorCotacao,
                                           cotVendaAux.ValorCotacao, cotCompraAux.SerieVo);

            cot.AddReference(cotCompraAux.SerieVo);

            using (var ctx = new CambioContext())
            {
                try
                {
                    //recupera a moeda pelo codigo de compra/venda
                    Moeda moeda = ctx.MoedaDao.First(m =>
                                                     m.CodigoWSCompra == codCompra || m.CodigoWSVenda == codVenda);

                    cot.Moeda = moeda;
                    SaveCotacaoMonetaria(ctx, cot);
                }
                catch (Exception ex)
                {
                    string msg   = "Moeda não foi localizada";
                    string title = "Não foi possível obter a atualização cambial";
                    XMessageIts.Advertencia(msg, title);

                    LoggerUtilIts.GenerateLogs(ex, msg + "\n" + title);

                    throw ex;
                }
            }
            return(cot);
        }