public async Task <IActionResult> SearchEstado(string buscaEstado, int page = 1)
        {
            try
            {
                if (buscaEstado == null)
                {
                    List <String> Estados = BairroUtil.GetEstados();
                    ViewBag.estados = Estados.OrderBy(b => b).ToList();
                    var query = _context.Fornecedores.Include(j => j.Status).AsNoTracking().Where(f => f.StatusId == 1).OrderBy(j => j.NomeFornecedor);
                    ListaParaCsv.Clear();
                    ListaParaCsv = query.ToList();
                    var model = await PagingList.CreateAsync(query, 5, page);

                    return(View("Index", model));
                }
                else
                {
                    List <String> Estados = BairroUtil.GetEstados();
                    ViewBag.estados = Estados.OrderBy(b => b).ToList();
                    List <Fornecedor> listaDeFornecedor = new List <Fornecedor>();
                    var fornecedor = _context.Fornecedores.Include(j => j.Status).Where(b => b.EstadoFornecedor.Contains(buscaEstado) && b.StatusId == 1).OrderBy(b => b.NomeFornecedor);
                    ListaParaCsv.Clear();
                    ListaParaCsv = fornecedor.ToList();
                    var model = await PagingList.CreateAsync(fornecedor, 100, page);

                    return(View("Index", model));
                }
            }
            catch (Exception)
            {
                TempData["msgSucesso"] = "Erro na sua solicitação, favor tentar novamente!";
                return(View());
            }
        }
        // GET: Fornecedores/Create
        public IActionResult Create()
        {
            if (Request.Cookies["idDoUser"] == null)
            {
                return(RedirectToAction("Login", "Jornaleiros"));
            }
            List <String> Estados = BairroUtil.GetEstados();

            ViewBag.estados      = Estados.OrderBy(b => b).ToList();
            ViewData["StatusId"] = new SelectList(_context.Status, "StatusId", "NomeStatus");

            return(View());
        }
        // GET: Fornecedores
        public async Task <IActionResult> Index(int page = 1)
        {
            if (Request.Cookies["idDoUser"] == null)
            {
                return(RedirectToAction("Login", "Jornaleiros"));
            }
            List <String> Estados = BairroUtil.GetEstados();

            ViewBag.estados = Estados.OrderBy(b => b).ToList();
            var query = _context.Fornecedores.Include(j => j.Status).AsNoTracking().Where(f => f.StatusId == 1).OrderBy(j => j.NomeFornecedor);

            ListaParaCsv.Clear();
            ListaParaCsv = query.ToList();
            var model = await PagingList.CreateAsync(query, 5, page);

            return(View(model));
        }
        public async Task <IActionResult> Edit(long?id, [Bind("CNPJ,NomeFornecedor,EmailFornecedor,TelefoneFornecedor,PontoFocalFornecedor,LogradouroFornecedor,EstadoFornecedor,CEPFornecedor,StatusId")] Fornecedor fornecedor)
        {
            if (id != fornecedor.CNPJ)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    var existeFornce = _context.Fornecedores.Where(f => f.NomeFornecedor == fornecedor.NomeFornecedor && f.CNPJ != fornecedor.CNPJ && f.StatusId == 1).Select(f => f.NomeFornecedor).FirstOrDefault();
                    if (existeFornce == null)
                    {
                        _context.Update(fornecedor);
                        await _context.SaveChangesAsync();
                    }
                    else
                    {
                        ViewData["StatusId"] = new SelectList(_context.Status, "StatusId", "NomeStatus", fornecedor.StatusId);
                        List <String> Estados = BairroUtil.GetEstados();
                        ViewBag.estados        = Estados.OrderBy(b => b).ToList();
                        TempData["msgSucesso"] = "Nome de fornecedor já existente em nosso banco de dados!";
                        return(View());
                    }
                }
                catch (Exception)
                {
                    ViewData["StatusId"] = new SelectList(_context.Status, "StatusId", "NomeStatus");
                    List <String> Estados = BairroUtil.GetEstados();
                    ViewBag.estados        = Estados.OrderBy(b => b).ToList();
                    TempData["msgSucesso"] = "Erro na sua solicitação, favor tentar novamente!";
                    return(View());
                }
                return(RedirectToAction(nameof(Index)));
            }
            ViewData["StatusId"] = new SelectList(_context.Status, "StatusId", "NomeStatus", fornecedor.StatusId);
            return(View(fornecedor));
        }
        // GET: Fornecedores/Edit/5
        public async Task <IActionResult> Edit(long?id)
        {
            if (Request.Cookies["idDoUser"] == null)
            {
                return(RedirectToAction("Login", "Jornaleiros"));
            }
            if (id == null)
            {
                return(NotFound());
            }

            var fornecedor = await _context.Fornecedores.FindAsync(id);

            if (fornecedor == null)
            {
                return(NotFound());
            }
            ViewData["StatusId"] = new SelectList(_context.Status, "StatusId", "NomeStatus", fornecedor.StatusId);
            List <String> Estados = BairroUtil.GetEstados();

            ViewBag.estados = Estados.OrderBy(b => b).ToList();
            return(View(fornecedor));
        }
        public async Task <IActionResult> Create([Bind("CNPJ,NomeFornecedor,EmailFornecedor,TelefoneFornecedor,PontoFocalFornecedor,LogradouroFornecedor,EstadoFornecedor,CEPFornecedor,StatusId")] Fornecedor fornecedor)
        {
            try
            {
                fornecedor.CNPJ = CpnjFornece;
                if (ModelState.IsValid)
                {
                    var existeForne = _context.Fornecedores.Where(f => f.NomeFornecedor == fornecedor.NomeFornecedor && f.StatusId == 1).Select(b => b.NomeFornecedor).FirstOrDefault();
                    if (existeForne == null)
                    {
                        //var forneceData = _context.Fornecedores.Where(j => j.CNPJ == fornecedor.CNPJ).Select(j => j).FirstOrDefault();
                        fornecedor.CNPJ = CpnjFornece;
                        _context.Add(fornecedor);
                        await _context.SaveChangesAsync();

                        return(RedirectToAction(nameof(Index)));
                    }
                    else
                    {
                        ViewData["StatusId"] = new SelectList(_context.Status, "StatusId", "NomeStatus", fornecedor.StatusId);
                        List <String> Estados2 = BairroUtil.GetEstados();
                        ViewBag.estados        = Estados2.OrderBy(b => b).ToList();
                        TempData["msgSucesso"] = "Nome de fornecedor já existente em nosso banco de dados!";
                        return(View());
                    }
                }
                ViewData["StatusId"] = new SelectList(_context.Status, "StatusId", "NomeStatus", fornecedor.StatusId);
                List <String> Estados = BairroUtil.GetEstados();
                ViewBag.estados = Estados.OrderBy(b => b).ToList();
                return(View(fornecedor));
            }
            catch (Exception ex)
            {
                TempData["msgSucesso"] = "Ocorreu um erro interno na aplicação!";
                return(View(fornecedor));
            }
        }