예제 #1
0
        public void TesteIndiceComAdicaoDeSegundoItemIndiceByPercentual()
        {
            Indice indice = CreateIndice();

            indice.AddItemByVariacaoCota(DateTime.Now.AddDays(1), 1.1);
            Assert.Equal(110.0, indice.ValorCotaAtual, 2);
            Assert.Equal(10.0, indice.VariacaoFinanceira, 2);
            Assert.Equal(1.1, indice.VariacaoCotaPercentual, 2);
        }
예제 #2
0
        public void TesteCriacaoDeSegundoItemIndiceByPercentual()
        {
            Indice indice = CreateIndice();

            indice.AddItemByVariacaoCota(DateTime.Now.AddDays(1), 1.1);
            ItemIndice item = indice.Itens.LastOrDefault();

            Assert.Equal(1.1, item.VariacaoCotaPercentual, 2);
            Assert.Equal(10.0, item.VariacaoFinanceira, 2);
            Assert.Equal(110.0, item.ValorCota, 2);
        }
예제 #3
0
 public Indice FromCarteira(Carteira carteira)
 {
     if (carteira != null)
     {
         Indice indice = new Indice(carteira.Codigo, carteira.Descricao, carteira.ValorCotaInicial, carteira.Itens.FirstOrDefault().DataCota);
         carteira.Itens.RemoveAt(0);
         carteira.Itens.ForEach(itemCarteira => indice.AddItemByVariacaoCota(itemCarteira.DataCota, itemCarteira.VariacaoCotaPercentual));
         return(indice);
     }
     return(null);
 }
예제 #4
0
        private Indice GetCotizacaoAjustadaPorData(Indice indiceCompleto, DateTime dataInicio, DateTime dataFim)
        {
            var itensFiltered = indiceCompleto?.Itens?.Where(item => item.DataCota >= dataInicio.Date && item.DataCota <= dataFim.Date)?.ToList();

            if (itensFiltered?.Count > 0)
            {
                Indice indiceAjustado = new Indice(indiceCompleto.Codigo, indiceCompleto.Descricao, 1.0, itensFiltered.First().DataCota);
                itensFiltered.RemoveAt(0);
                itensFiltered.ForEach(item => indiceAjustado.AddItemByVariacaoCota(item.DataCota, item.VariacaoCotaPercentual));
                return(indiceAjustado);
            }
            return(null);
        }
예제 #5
0
        public void Patch([FromBody] ItemIndice itemIndice, string codigo)
        {
            Indice indice = repository.GetById(codigo);

            if (itemIndice.ValorCota >= 0.0)
            {
                indice.AddItemByValorCota(itemIndice.DataCota, itemIndice.ValorCota);
            }
            else
            {
                indice.AddItemByVariacaoCota(itemIndice.DataCota, itemIndice.VariacaoCotaPercentual);
            }
            repository.Update(indice);
        }
예제 #6
0
        public void TesteCriacaoDeItemComDataMenorIgualAoUltimoItem()
        {
            Indice indice = CreateIndice();

            Assert.Throws <Exception>(() => indice.AddItemByVariacaoCota(DateTime.Now, 1.1));
        }