public async Task <IReadOnlyList <RifaViewModel> > ListarAsync()
        {
            var rifas = await _rifaRepository.GetAllAsync();

            var rifasViewModel = new List <RifaViewModel>(rifas.Count);

            foreach (var rifa in rifas)
            {
                rifasViewModel.Add(RifaViewModel.MapFromEntity(rifa));
            }

            return(rifasViewModel);
        }
        public async Task <ActionResult> Create([FromForm] RifaViewModel rifaViewModel)
        {
            try
            {
                var rifaCriada = await _rifaService.Criar(rifaViewModel);

                if (!rifaCriada)
                {
                    return(View());
                }

                return(RedirectToAction(nameof(Index)));
            }
            catch
            {
                return(View());
            }
        }
        public async Task <RifaViewModel> ObterComItensAsync(int rifaId, List <ClienteViewModel> clientes, List <ClienteViewModel> vendedores)
        {
            var rifa = await _rifaRepository.GetByIdAsync(rifaId);

            var itensRifa = await _itemRifaRepository.ListarPorRifaId(rifaId);

            var rifaViewModel = RifaViewModel.MapFromEntity(rifa);

            rifaViewModel.ItensRifa = new List <ItemRifaViewModel>(itensRifa.Count);

            foreach (var item in itensRifa)
            {
                var itemRifa = ItemRifaViewModel.MapFromEntity(item);

                itemRifa.Cliente  = clientes.FirstOrDefault(c => c.ClienteId == item.ClienteId);
                itemRifa.Vendedor = vendedores.FirstOrDefault(v => v.ClienteId == item.VendedorId);
                rifaViewModel.ItensRifa.Add(itemRifa);
            }
            return(rifaViewModel);
        }
        public async Task <bool> Criar(RifaViewModel rifaViewModel)
        {
            var rifa = rifaViewModel.MapToEntity();

            return(await _rifaRepository.AddAsync(rifa) > 0);
        }
        public IActionResult Index(RifaViewModel rifa)
        {
            var res = 0;

            try
            {
                RifaRepository    c = new RifaRepository();
                UsuarioRepository u = new UsuarioRepository();
                var listaNumeros    = c.GetAll();

                if (rifa.Nome != null || rifa.Numeros != null)
                {
                    var numeros = rifa.Numeros.Split(",");

                    var x = new List <int>();
                    foreach (var n in numeros)
                    {
                        foreach (var ln in listaNumeros)
                        {
                            if (ln.Numero == Convert.ToInt32(n))
                            {
                                if (ln.Vendido == true)
                                {
                                    res = 1;
                                    x.Add(ln.Numero);
                                }
                                else
                                {
                                    Rifa r = new Rifa();
                                    r.NomeId  = rifa.NomeId;
                                    r.Pago    = rifa.Pago;
                                    r.Vendido = true;
                                    r.Numero  = ln.Numero;

                                    c.Update(r);
                                }
                            }
                        }
                    }

                    var result = String.Join(", ", x.ToArray());

                    ViewBag.r = result;
                }
                var listas = c.ListaOrdenada();
                var aux    = 1;
                foreach (var lista in listas)
                {
                    ViewData["Lista" + aux] = lista;
                    aux++;
                }
                ViewBag.listaUsuarios = u.GetAll();
            }
            catch (Exception e)
            {
                if (e.Message == "Input string was not in a correct format.")
                {
                    res = 2;
                }

                RifaRepository    c = new RifaRepository();
                UsuarioRepository u = new UsuarioRepository();
                var listas          = c.ListaOrdenada();
                var aux             = 1;
                foreach (var lista in listas)
                {
                    ViewData["Lista" + aux] = lista;
                    aux++;
                }
                ViewBag.listaUsuarios = u.GetAll();
            }
            //RifaRepository y = new RifaRepository();
            //for (var x = 1; x <= 150; x++)
            //{
            //    Rifa r = new Rifa();
            //    r.NomeId = 0;
            //    r.Numero = x;
            //    r.Pago = false;
            //    r.Vendido = false;
            //    y.Add(r);
            //}
            ViewBag.res = res;

            return(View());
        }
        public IActionResult EditarNumero(RifaViewModel rifa)
        {
            var res = 0;

            try
            {
                RifaRepository    c = new RifaRepository();
                UsuarioRepository u = new UsuarioRepository();
                var listaNumeros    = c.GetAll();

                if (rifa.Nome != null || rifa.Numeros != null)
                {
                    var numeros = rifa.Numeros.Split(",");

                    var x = new List <int>();
                    foreach (var n in numeros)
                    {
                        foreach (var ln in listaNumeros)
                        {
                            if (ln.Numero == Convert.ToInt32(n))
                            {
                                if (ln.Vendido == false)
                                {
                                    res = 1;
                                    x.Add(ln.Numero);
                                }
                                else
                                {
                                    Rifa r = new Rifa();
                                    r.NomeId  = 0;
                                    r.Pago    = false;
                                    r.Vendido = false;
                                    r.Numero  = ln.Numero;

                                    c.Update(r);
                                }
                            }
                        }
                    }

                    var result = String.Join(", ", x.ToArray());

                    ViewBag.r = result;
                }
                var listas = c.ListaOrdenada();
                var aux    = 1;
                ViewBag.res           = res;
                ViewBag.listaUsuarios = u.GetAll();
                if (aux == 1)
                {
                    return(View());
                }
            }
            catch (Exception e)
            {
                if (e.Message == "Input string was not in a correct format.")
                {
                    res = 2;
                }
                UsuarioRepository u = new UsuarioRepository();
                ViewBag.listaUsuarios = u.GetAll();
                return(View());
            }
            ViewBag.res = res;
            return(RedirectToAction("Index"));
        }