public async Task <ActionResult> DeleteConfirmed(Guid id)
        {
            AcaoHistorico acaoHistorico = await db.AcoesHistoricos.FindAsync(id);

            db.AcoesHistoricos.Remove(acaoHistorico);
            await db.SaveChangesAsync();

            return(RedirectToAction("Index"));
        }
        public async Task <ActionResult> Edit([Bind(Include = "AcaoHistoricoId,AcaoId,Preco,ValorVariacao,PercentualVariacao,DataHora")] AcaoHistorico acaoHistorico)
        {
            if (ModelState.IsValid)
            {
                db.Entry(acaoHistorico).State = EntityState.Modified;
                await db.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }
            ViewBag.AcaoId = new SelectList(db.Acoes, "AcaoId", "CodigoNegociacao", acaoHistorico.AcaoId);
            return(View(acaoHistorico));
        }
        public async Task <ActionResult> Create([Bind(Include = "AcaoHistoricoId,AcaoId,Preco,ValorVariacao,PercentualVariacao,DataHora")] AcaoHistorico acaoHistorico)
        {
            if (ModelState.IsValid)
            {
                acaoHistorico.AcaoHistoricoId = Guid.NewGuid();
                db.AcoesHistoricos.Add(acaoHistorico);
                await db.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }

            ViewBag.AcaoId = new SelectList(db.Acoes, "AcaoId", "CodigoNegociacao", acaoHistorico.AcaoId);
            return(View(acaoHistorico));
        }
        // GET: AcoesHistoricos/Details/5
        public async Task <ActionResult> Details(Guid?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            AcaoHistorico acaoHistorico = await db.AcoesHistoricos.FindAsync(id);

            if (acaoHistorico == null)
            {
                return(HttpNotFound());
            }
            return(View(acaoHistorico));
        }
        // GET: AcoesHistoricos/Edit/5
        public async Task <ActionResult> Edit(Guid?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            AcaoHistorico acaoHistorico = await db.AcoesHistoricos.FindAsync(id);

            if (acaoHistorico == null)
            {
                return(HttpNotFound());
            }
            ViewBag.AcaoId = new SelectList(db.Acoes, "AcaoId", "CodigoNegociacao", acaoHistorico.AcaoId);
            return(View(acaoHistorico));
        }
Beispiel #6
0
        private static async Task AcoesFlutuacoes(BaseContext db)
        {
            var acoes = await db.Acoes
                        .OrderBy(a => Guid.NewGuid())
                        .ToListAsync();

            var rd = new Random((int)DateTime.Now.Ticks);

            foreach (var acao in acoes)
            {
                decimal random             = rd.Next(-1000000000, 1000000000);
                decimal percentualVariacao = random / 1000000000;
                var     valorVariacao      = Math.Round((decimal)acao.Preco * (percentualVariacao / 100), 2);
                var     preco     = acao.Preco + valorVariacao;
                var     historico = new AcaoHistorico()
                {
                    AcaoHistoricoId    = Guid.NewGuid(),
                    DataHora           = DateTime.Now,
                    PercentualVariacao = percentualVariacao,
                    Preco         = preco,
                    ValorVariacao = valorVariacao,
                    AcaoId        = acao.AcaoId,
                };

                var usuariosAcoes = await db.UsuariosAcoes
                                    .Where(a => a.AcaoId == acao.AcaoId && a.Ativo)
                                    .ToListAsync();

                foreach (var usuarioAcao in usuariosAcoes)
                {
                    db.UsuariosAcoesHistoricos.Add(new UsuarioAcaoHistorico()
                    {
                        UsuarioAcaoHistoricoId = Guid.NewGuid(),
                        UsuarioAcaoId          = usuarioAcao.UsuarioAcaoId,
                        Rentabilidade          = (historico.Preco - usuarioAcao.Preco) * usuarioAcao.Quantidade,
                        PercentualVariacao     = percentualVariacao,
                        Preco         = historico.Preco,
                        ValorVariacao = historico.ValorVariacao,
                    });
                    usuarioAcao.Rentabilidade = (historico.Preco - usuarioAcao.Preco) * usuarioAcao.Quantidade;
                }
                db.AcoesHistoricos.Add(historico);

                Thread.Sleep(1);
            }

            await db.SaveChangesAsync();
        }