public async Task <ActionResult> CancelarParticipacao(int?id) { try { Session.Add("pkRole", id); CAUsuario usuario; if (Session["usuario"] == null) { return(RedirectToAction("Login", "CAUsuarios", new { urlRetorno = Request.Url.AbsolutePath })); } usuario = (CAUsuario)Session["usuario"]; Participamente participanteValidacao = db.Participamente.Where(o => o.fkRole == id && o.fkUsuario == usuario.pkUsuario).First(); db.Participamente.Remove(participanteValidacao); await db.SaveChangesAsync(); return(RedirectToAction("Details", "Roles", new { id = id })); } catch (Exception er) { return(RedirectToAction("Details", "Roles", new { id = id, msgErro = er.Message.ToString() })); } }
// GET: Roles/Details/5 public async Task <ActionResult> Participar(int?id, int?pkMoto) { try { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } Session.Add("pkRole", id); CAUsuario usuario; if (Session["usuario"] == null) { return(RedirectToAction("Login", "CAUsuarios", new { urlRetorno = Request.Url.AbsolutePath })); } usuario = (CAUsuario)Session["usuario"]; if (db.Participamente.Where(o => o.fkRole == id && o.fkUsuario == usuario.pkUsuario).Any()) { Participamente participanteValidacao = db.Participamente.Where(o => o.fkRole == id && o.fkUsuario == usuario.pkUsuario).First(); if (participanteValidacao.autorizado == null) { return(RedirectToAction("Details", "Roles", new { id = id, msgErro = "Solicitação para participar do Passeio/Evento já enviada e aguardando aprovação." })); } else { if (participanteValidacao.autorizado == true) { return(RedirectToAction("Details", "Roles", new { id = id, msgErro = "Sua participação já esta autorizada neste evento!" })); } else { return(RedirectToAction("Details", "Roles", new { id = id, msgErro = "Sua participação já foi solicitada! Agora esta aguardando participação!" })); } } // redirencionar avisando que já esta inscrito no rolé. } Participamente novoParticipante = new Participamente(); novoParticipante.fkRole = id; novoParticipante.fkUsuario = usuario.pkUsuario; novoParticipante.autorizado = true; // depois isso deve ser alterado de acordo com as configuracoes do role. publico ou privado. if (pkMoto == null) { int totalmotos = usuario.Moto.Where(o => o.ativa == true).ToList().Count; if (totalmotos == 0) { return(RedirectToAction("Details", "Roles", new { id = id, msgErro = "Você precisa ter pelo menos uma Moto cadastrada! <br> clique aqui para cadastrar!" })); } if (totalmotos > 1) { return(RedirectToAction("Details", "Roles", new { id = id, msgErro = "Você precisa ter pelo menos uma Moto cadastrada! <br> clique aqui para cadastrar!" })); } if (totalmotos == 1) { novoParticipante.fkMoto = usuario.Moto.First().pkMoto; } } else { novoParticipante.fkMoto = pkMoto; } db.Participamente.Add(novoParticipante); await db.SaveChangesAsync(); return(RedirectToAction("Details", "Roles", new { id = id, msgErro = "Participação no Passeio/Evento Cadastrada com Sucesso!" })); } catch (Exception er) { return(RedirectToAction("Details", "Roles", new { id = id, msgErro = er.Message.ToString() })); throw; } return(View()); }
// GET: Roles/Details/5 public async Task <ActionResult> Details(int?id, string msgErro) { if (id == null) { return(RedirectToAction("IndexInterno", "Home")); } CAUsuario usuario; if (Session["usuario"] == null) { return(RedirectToAction("View", "Home", new { id = id })); } else { usuario = (CAUsuario)Session["usuario"]; } EntidadeRole entRole = new EntidadeRole(); Role role = await db.Role.FindAsync(id); entRole.role = role; if (usuario.pkUsuario == role.fkUsuario) { entRole.eAdm = true; } else { entRole.eAdm = false; } if (msgErro != null) { entRole.erro = new EntidadeErro(); entRole.erro.msgErro = msgErro; entRole.erro.msgTitulo = "Atenção"; entRole.erro.msgTipo = "warning"; entRole.erro.erro = true; } if (role == null) { return(HttpNotFound()); } MotoesController cMoto = new MotoesController(); List <EntidadeMoto> listaMotos = cMoto.carregaEntidadeMoto(db.Moto.Where(o => o.fkUsuario == usuario.pkUsuario && o.ativa == true).ToList()); ViewBag.pkMoto = new SelectList(listaMotos, "pkMoto", "descricao"); if (db.Participamente.Where(o => o.fkRole == id && o.fkUsuario == usuario.pkUsuario).Any()) { entRole.inscritoRole = true; Participamente participante = db.Participamente.Where(o => o.fkRole == id && o.fkUsuario == usuario.pkUsuario).First(); entRole.descricaoMotoInscrita = participante.Moto.nomeMoto + " - " + participante.Moto.Marca.DescricaoMarca + " - " + participante.Moto.modeloMoto; } else { entRole.inscritoRole = false; } // List<Participamente> listaParticipantes = entRole.participantes = db.Participamente.Where(o => o.fkRole == id && o.autorizado == true).ToList(); entRole.comentarios = db.Comentario.Where(o => o.fkRole == id && o.ativo == true).ToList(); return(View(entRole)); }