public async Task <PedidoDeAjudaViewModel> EditaPedidoDeAjuda(PedidoDeAjudaViewModel pedidoDeAjudaViewModel)
        {
            var pedidoDeAjuda = await _context.PedidosDeAjuda.AsNoTracking()
                                .FirstOrDefaultAsync(m => m.Id == pedidoDeAjudaViewModel.Id);

            if (pedidoDeAjuda == null)
            {
                return(null);
            }

            pedidoDeAjuda.Id          = pedidoDeAjudaViewModel.Id;
            pedidoDeAjuda.Titulo      = pedidoDeAjudaViewModel.Titulo;
            pedidoDeAjuda.FotoUrl     = pedidoDeAjudaViewModel.FotoUrl;
            pedidoDeAjuda.TipoPessoa  = pedidoDeAjudaViewModel.TipoPessoa;
            pedidoDeAjuda.TipoAjuda   = pedidoDeAjudaViewModel.TipoAjuda;
            pedidoDeAjuda.Estado      = pedidoDeAjudaViewModel.Estado;
            pedidoDeAjuda.Cidade      = pedidoDeAjudaViewModel.Cidade;
            pedidoDeAjuda.Descricao   = pedidoDeAjudaViewModel.Descricao;
            pedidoDeAjuda.Email       = pedidoDeAjudaViewModel.Email;
            pedidoDeAjuda.WhatsApp    = pedidoDeAjudaViewModel.WhatsApp;
            pedidoDeAjuda.WebsiteUrl  = pedidoDeAjudaViewModel.WebsiteUrl;
            pedidoDeAjuda.FacebookUrl = pedidoDeAjudaViewModel.FacebookUrl;
            pedidoDeAjuda.FinanciamentoColetivoUrl = pedidoDeAjudaViewModel.FinanciamentoColetivoUrl;
            pedidoDeAjuda.UsuarioId = pedidoDeAjudaViewModel.UsuarioId;

            _context.Update(pedidoDeAjuda);
            await _context.SaveChangesAsync();

            return(pedidoDeAjudaViewModel);
        }
        public async Task <PedidoDeAjudaViewModel> CriaPedidoDeAjuda(PedidoDeAjudaViewModel pedidoDeAjudaViewModel)
        {
            var pedidoDeAjuda = new PedidoDeAjuda
            {
                Id          = pedidoDeAjudaViewModel.Id,
                Titulo      = pedidoDeAjudaViewModel.Titulo,
                FotoUrl     = pedidoDeAjudaViewModel.FotoUrl,
                TipoPessoa  = pedidoDeAjudaViewModel.TipoPessoa,
                TipoAjuda   = pedidoDeAjudaViewModel.TipoAjuda,
                Estado      = pedidoDeAjudaViewModel.Estado,
                Cidade      = pedidoDeAjudaViewModel.Cidade,
                Descricao   = pedidoDeAjudaViewModel.Descricao,
                Email       = pedidoDeAjudaViewModel.Email,
                WhatsApp    = pedidoDeAjudaViewModel.WhatsApp,
                WebsiteUrl  = pedidoDeAjudaViewModel.WebsiteUrl,
                FacebookUrl = pedidoDeAjudaViewModel.FacebookUrl,
                FinanciamentoColetivoUrl = pedidoDeAjudaViewModel.FinanciamentoColetivoUrl,
                UsuarioId = pedidoDeAjudaViewModel.UsuarioId
            };

            _context.Add(pedidoDeAjuda);
            await _context.SaveChangesAsync();

            pedidoDeAjudaViewModel.Id = pedidoDeAjuda.Id;
            return(pedidoDeAjudaViewModel);
        }
        public async Task <IActionResult> Create(PedidoDeAjudaViewModel pedidoDeAjudaViewModel)
        {
            if (ModelState.IsValid)
            {
                pedidoDeAjudaViewModel.UsuarioId = Convert.ToInt32(User.FindFirstValue(ClaimTypes.NameIdentifier));
                await _pedidosDeAjudaService.CriaPedidoDeAjuda(pedidoDeAjudaViewModel);

                return(RedirectToAction(nameof(Index)));
            }
            return(View(pedidoDeAjudaViewModel));
        }
        public async Task <IActionResult> Edit(PedidoDeAjudaViewModel pedidoDeAjudaViewModel)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    pedidoDeAjudaViewModel.UsuarioId = Convert.ToInt32(User.FindFirstValue(ClaimTypes.NameIdentifier));
                    var resultado = await _pedidosDeAjudaService.EditaPedidoDeAjuda(pedidoDeAjudaViewModel);

                    if (resultado == null)
                    {
                        return(NotFound());
                    }
                    return(RedirectToAction(nameof(Index)));
                }
                catch (DbUpdateConcurrencyException)
                {
                    return(View(pedidoDeAjudaViewModel));
                }
            }
            return(View(pedidoDeAjudaViewModel));
        }