public async Task <IActionResult> Create(ReclamacaoViewModel RVM, Reclamacao reclamacao, int id) { if (ModelState.IsValid) { var cliente = _context.Users.SingleOrDefault(c => c.Email == User.Identity.Name); var contrato = _context.Contratos.SingleOrDefault(c => c.ContratoId == id); reclamacao.NomeCliente = cliente.Nome; reclamacao.FuncionarioId = contrato.FuncionarioId; reclamacao.ContratoId = id; reclamacao.ResolvidoCliente = false; reclamacao.ResolvidoOperador = false; reclamacao.PorResoponder = true; reclamacao.DataReclamacao = DateTime.Now; reclamacao.Assunto = RVM.Assunto; reclamacao.Descricao = RVM.Descricao; reclamacao.ReclamacaoId = RVM.ReclamacaoId; _context.Add(reclamacao); await _context.SaveChangesAsync(); ViewBag.Mensagem = "Reclamação enviada com sucesso"; return(View("SucessoReclamacao")); } ModelState.AddModelError("", "Não foi possível registar a reclamação, tente novamente"); return(View(reclamacao)); }
private void PopulaTela(string _idRec) { int _id; Int32.TryParse(_idRec, out _id); ReclamacaoViewModel c = r.getReclamacaoId(_id).FirstOrDefault(); ddlCategoria.SelectedValue = c.CategoriaId.ToString(); ddlBairro.SelectedValue = c.BairrosId.ToString(); ddlStatus.SelectedValue = c.Status.ToString(); txtTitulo.Text = c.Titulo; txtEndereco.Text = c.Endereco; txtDescricao.Text = c.Descricao; ddlCategoria.Enabled = false; ddlBairro.Enabled = false; txtTitulo.Enabled = false; txtEndereco.Enabled = false; txtDescricao.Enabled = false; btnLimpar.Visible = false; foto.Visible = false; Button1.Text = "Salvar"; if (c.Status == Status.Encerrada) { ddlStatus.Enabled = false; Button1.Visible = false; } else { ddlStatus.Items.Remove(ddlStatus.Items.FindByText("Encerrada")); } MostraStatus(true); }
public async Task <IActionResult> RespostaFeedback(ReclamacaoViewModel RVM, Feedback feedback, int id) { if (ModelState.IsValid) { var reclamacao = await _context.Reclamacao.Include(p => p.Feedback) .AsNoTracking() .SingleOrDefaultAsync(p => p.ReclamacaoId == id); var funcionario = await _context.Users.SingleOrDefaultAsync(c => c.Email == User.Identity.Name); reclamacao.ReclamacaoId = RVM.ReclamacaoId; reclamacao.ContratoId = RVM.ContratoId; reclamacao.NomeCliente = RVM.NomeCliente; reclamacao.FuncionarioId = funcionario.UsersId; reclamacao.Assunto = RVM.Assunto; reclamacao.Descricao = RVM.Descricao; reclamacao.ResolvidoOperador = RVM.ResolvidoOperador; reclamacao.ResolvidoCliente = RVM.ResolvidoCliente; reclamacao.DataReclamacao = RVM.DataReclamacao; reclamacao.PorResoponder = false; var contrato = await _context.Contratos.SingleOrDefaultAsync(c => c.ContratoId == reclamacao.ContratoId); var cliente = await _context.Users.SingleOrDefaultAsync(c => c.UsersId == contrato.ClienteId); string email; string assunto; string mensagem; assunto = "UPtel - Resposta ao feedback de " + reclamacao.NomeCliente; mensagem = "Caro/a " + reclamacao.NomeCliente + ", informamos que o nosso operador " + funcionario.Nome + " respondeu ao seu feedback"; email = cliente.Email; _context.Reclamacao.Update(reclamacao); await _context.SaveChangesAsync(); feedback.FuncionarioId = funcionario.UsersId; feedback.DataFeedback = DateTime.Now; feedback.Mensagem = RVM.Mensagem; feedback.Nome = funcionario.Nome; _context.Feedback.Add(feedback); await _context.SaveChangesAsync(); try { await _emailSender.SendEmailAsync(email, assunto, mensagem); } catch (Exception) { return(RedirectToAction("RespostaFeedback")); } return(RedirectToAction(nameof(Index))); } ModelState.AddModelError("", "Não foi possível registar a reclamação, tente novamente"); return(View(RVM)); }
public async Task <IActionResult> FeedbackCliente(ReclamacaoViewModel RVM, Feedback feedback, int id) { if (ModelState.IsValid) { var reclamacao = await _context.Reclamacao .Include(p => p.Feedback) .AsNoTracking() .SingleOrDefaultAsync(p => p.ReclamacaoId == id); var cliente = await _context.Users.SingleOrDefaultAsync(c => c.Email == User.Identity.Name); reclamacao.ContratoId = RVM.ContratoId; reclamacao.NomeCliente = RVM.NomeCliente; reclamacao.FuncionarioId = reclamacao.FuncionarioId; reclamacao.Assunto = RVM.Assunto; reclamacao.Descricao = RVM.Descricao; reclamacao.ResolvidoOperador = reclamacao.ResolvidoOperador; reclamacao.ResolvidoCliente = RVM.ResolvidoCliente; reclamacao.DataReclamacao = RVM.DataReclamacao; reclamacao.PorResoponder = true; _context.Reclamacao.Update(reclamacao); await _context.SaveChangesAsync(); feedback.FuncionarioId = reclamacao.FuncionarioId; feedback.DataFeedback = DateTime.Now; feedback.Mensagem = RVM.Mensagem; feedback.ReclamacaoId = id; feedback.Nome = cliente.Nome; _context.Feedback.Add(feedback); await _context.SaveChangesAsync(); ViewBag.Mensagem = "Feedback enviado com sucesso"; return(View("SucessoFeedback")); } ModelState.AddModelError("", "Não foi possível registar a reclamação, tente novamente"); return(View(RVM)); }
public async Task <IActionResult> RespostaFeedback(int?id) { ReclamacaoViewModel RVM = new ReclamacaoViewModel(); var reclamacao = await _context.Reclamacao.Include(p => p.Feedback) .AsNoTracking() .SingleOrDefaultAsync(p => p.ReclamacaoId == id); RVM.ReclamacaoId = reclamacao.ReclamacaoId; RVM.ContratoId = reclamacao.ContratoId; RVM.NomeCliente = reclamacao.NomeCliente; RVM.FuncionarioId = reclamacao.FuncionarioId; RVM.Assunto = reclamacao.Assunto; RVM.Descricao = reclamacao.Descricao; RVM.ResolvidoOperador = reclamacao.ResolvidoOperador; RVM.ResolvidoCliente = reclamacao.ResolvidoCliente; RVM.DataReclamacao = reclamacao.DataReclamacao; RVM.ListaMensagens = reclamacao.Feedback; return(View(RVM)); }
public async Task <IActionResult> RespostaReclamacaoOperador(int?id) { if (id == null) { return(NotFound()); } ReclamacaoViewModel RVM = new ReclamacaoViewModel(); var reclamacao = await _context.Reclamacao.Include(p => p.Feedback) .AsNoTracking() .SingleOrDefaultAsync(p => p.ReclamacaoId == id); RVM.ReclamacaoId = reclamacao.ReclamacaoId; RVM.ContratoId = reclamacao.ContratoId; RVM.NomeCliente = reclamacao.NomeCliente; RVM.FuncionarioId = reclamacao.FuncionarioId; RVM.Assunto = reclamacao.Assunto; RVM.Descricao = reclamacao.Descricao; RVM.ResolvidoOperador = reclamacao.ResolvidoOperador; RVM.ResolvidoCliente = reclamacao.ResolvidoCliente; RVM.DataReclamacao = reclamacao.DataReclamacao; var feedback = await _context.Feedback.FirstOrDefaultAsync(x => x.ReclamacaoId == reclamacao.ReclamacaoId); var funcionario = await _context.Users.SingleOrDefaultAsync(c => c.Email == User.Identity.Name); if (feedback != null) { RVM.FuncionarioId = feedback.FuncionarioId; RVM.Mensagem = feedback.Mensagem; RVM.DataFeedback = feedback.DataFeedback; } if (reclamacao == null) { return(NotFound()); } ViewData["ContartoId"] = new SelectList(_context.Contratos, "ContratoId", "ContratoId", RVM.ContratoId); return(View(RVM)); }
public async Task <IActionResult> Delete(int?id) { //if (id == null) //{ // return NotFound(); //} //var reclamacao = await _context.Reclamacao // .Include(r => r.Contratos) // .FirstOrDefaultAsync(m => m.ReclamacaoId == id); //if (reclamacao == null) //{ // ViewBag.Mensagem = "O cliente já foi eliminado por outra pessoa."; // return View("Sucesso"); //} //return View(reclamacao); ReclamacaoViewModel RVM = new ReclamacaoViewModel(); var reclamacao = await _context.Reclamacao.Include(p => p.Feedback) .AsNoTracking() .SingleOrDefaultAsync(p => p.ReclamacaoId == id); RVM.ReclamacaoId = reclamacao.ReclamacaoId; RVM.ContratoId = reclamacao.ContratoId; RVM.NomeCliente = reclamacao.NomeCliente; RVM.FuncionarioId = reclamacao.FuncionarioId; RVM.Assunto = reclamacao.Assunto; RVM.Descricao = reclamacao.Descricao; RVM.ResolvidoOperador = reclamacao.ResolvidoOperador; RVM.ResolvidoCliente = reclamacao.ResolvidoCliente; RVM.DataReclamacao = reclamacao.DataReclamacao; RVM.ListaMensagens = reclamacao.Feedback; return(View(RVM)); }
private void PopulaReclamacao(int _idReclamcao) { btnResolver.Visible = false; string userId = User.Identity.GetUserId(); ApplicationDbContext db = new ApplicationDbContext(); var role = (from j in db.Roles where j.Name.Contains("Oficial") select j).FirstOrDefault(); var users = db.Users.Where(x => x.Roles.Select(y => y.RoleId).Contains(role.Id)).ToList(); ReclamacaoDal r = new ReclamacaoDal(); ReclamacaoViewModel c = r.getReclamacaoId(_idReclamcao).FirstOrDefault(); var currentUserId = c.UserId; var manager = Context.GetOwinContext().GetUserManager <ApplicationUserManager>(); var currentUser = manager.FindById(currentUserId); litUsuario.Text = currentUser.UserName; litCategoria.Text = c.Categoria; litBairro.Text = c.Bairro; litDescricao.Text = c.Descricao; litEndereco.Text = c.Endereco; litTituloReclamacao.Text = c.Titulo; if (users.Find(x => x.Id == userId) != null) { if (c.Status == Status.Encerrada) { btnResolver.Visible = false; } else { btnResolver.Visible = true; } } litStatus.Text = Enum.GetName(typeof(Status), c.Status); imgReclamacao.ImageUrl = @"~/Images/Reclamacao/" + c.Foto; }
public IActionResult Create(int id) { ReclamacaoViewModel RVM = new ReclamacaoViewModel(); return(View(RVM)); }