public async Task <IActionResult> ArquivadoOperador(string nomePesquisar, int pagina = 1) { Paginacao paginacao = new Paginacao { TotalItems = await bd.Reclamacoes .CountAsync(), PaginaAtual = pagina }; List <Reclamacoes> reclamacoes = await bd.Reclamacoes.Where(p => p.Inactivo == true || p.Cliente.Nome.Contains(nomePesquisar) || p.Cliente.Nif.Contains(nomePesquisar)) .Include(p => p.Cliente) .OrderBy(p => p.Cliente.Nome) .Skip(paginacao.ItemsPorPagina * (pagina - 1)) .Take(paginacao.ItemsPorPagina) .ToListAsync(); ReclamacoesViewModel ArquivadoOperador = new ReclamacoesViewModel { Paginacao = paginacao, Reclamacoes = reclamacoes, NomePesquisar = nomePesquisar }; return(View(ArquivadoOperador)); }
public async Task <IActionResult> RespostaOperador(int?id) { if (id == null) { return(NotFound()); } ReclamacoesViewModel reclamacoesViewModel = new ReclamacoesViewModel(); var funcionario = await bd.Utilizadores.SingleOrDefaultAsync(c => c.Email == User.Identity.Name); var reclamacao = await bd.Reclamacoes .AsNoTracking() .SingleOrDefaultAsync(p => p.ReclamacaoId == id); reclamacoesViewModel.ReclamacaoId = reclamacao.ReclamacaoId; reclamacoesViewModel.ContratoId = reclamacao.ContratoId; reclamacoesViewModel.ClienteId = reclamacao.ClienteId; reclamacoesViewModel.Resposta = reclamacao.Resposta; reclamacoesViewModel.EstadoResposta = reclamacao.EstadoResposta; reclamacoesViewModel.EstadoResolução = reclamacao.EstadoResolução; if (reclamacao == null) { return(NotFound()); } ViewData["ContratoId"] = new SelectList(bd.Contratos, "ContratoId", "ContratoId", reclamacoesViewModel.ContratoId); return(View(reclamacoesViewModel)); }
public async Task <IActionResult> Create(ReclamacoesViewModel reclamacoesViewModel, Reclamacoes reclamacao, int id) { if (ModelState.IsValid) { var cliente = bd.Utilizadores.SingleOrDefault(c => c.Email == User.Identity.Name); var contrato = bd.Contratos.SingleOrDefault(c => c.UtilizadorId == cliente.UtilizadorId); reclamacao.Cliente = cliente; reclamacao.ContratoId = contrato.ContratoId; reclamacao.FuncionarioId = contrato.FuncionarioId; reclamacao.EstadoResolução = false; reclamacao.EstadoResposta = false; reclamacao.DataReclamacao = DateTime.Now; reclamacao.Inactivo = false; reclamacao.Descricao = reclamacoesViewModel.Descricao; reclamacao.ReclamacaoId = reclamacoesViewModel.ReclamacaoId; bd.Add(reclamacao); await bd.SaveChangesAsync(); ViewBag.Mensagem = "Reclamação enviada com sucesso"; return(View("Sucesso")); } return(View(reclamacao)); }
public async Task <IActionResult> RespostaOperador(int id, ReclamacoesViewModel reclamacoesViewModel) { if (id != reclamacoesViewModel.ReclamacaoId) { return(NotFound()); } if (ModelState.IsValid) { try { var reclamacao = await bd.Reclamacoes .AsNoTracking() .SingleOrDefaultAsync(p => p.ReclamacaoId == id); var funcionario = await bd.Utilizadores.SingleOrDefaultAsync(c => c.Email == User.Identity.Name); reclamacao.ReclamacaoId = reclamacoesViewModel.ReclamacaoId; reclamacoesViewModel.ClienteId = reclamacao.ClienteId; reclamacao.FuncionarioId = funcionario.UtilizadorId; reclamacao.ContratoId = reclamacao.ContratoId; reclamacao.Resposta = reclamacoesViewModel.Resposta; reclamacao.EstadoResposta = reclamacoesViewModel.EstadoResposta; reclamacao.EstadoResolução = reclamacoesViewModel.EstadoResolução; reclamacao.DataResposta = DateTime.Now; reclamacao.DataResolucao = DateTime.Now; bd.Reclamacoes.Update(reclamacao); await bd.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!ReclamacoesExists(reclamacoesViewModel.ReclamacaoId)) { return(NotFound()); } else { throw; } } ViewBag.Mensagem = "Resposta enviada com sucesso"; return(View("SucessoOperador")); } ModelState.AddModelError("", "Não foi possível registar a reclamação, tente novamente"); return(View(reclamacoesViewModel)); }
// GET: Reclamacoes public async Task <IActionResult> ViewCliente() { List <Reclamacoes> ViewCliente = await bd.Reclamacoes .Include(p => p.Cliente).Where(p => p.Cliente.Email == User.Identity.Name) .ToListAsync(); ReclamacoesViewModel viewCliente = new ReclamacoesViewModel { Reclamacoes = ViewCliente, }; return(View(viewCliente)); }
public IActionResult Create(int id) { ReclamacoesViewModel criar = new ReclamacoesViewModel(); return(View(criar)); }