public ActionResult SalvarNovoTopico(T_Works_Topico_GrupoTrabalho Topico_GrupoTrabalho)
        {
            //Usuario Logado
            var usuarioLogadoId = Int32.Parse(User.Identity.Name);

            try
            {
                if (Topico_GrupoTrabalho.ComentarioTopico != null)
                {
                    using (var db = new ContextoTopico_GrupoTrabalho())
                    {
                        var grupo = db.Set <T_Works_Topico_GrupoTrabalho>();
                        grupo.Add(new T_Works_Topico_GrupoTrabalho {
                            GrupoTrabalhoId = Topico_GrupoTrabalho.GrupoTrabalhoId, UsuarioId = usuarioLogadoId, ComentarioTopico = Topico_GrupoTrabalho.ComentarioTopico, TituloTopico = Topico_GrupoTrabalho.TituloTopico, DataComentarioTopico = DateTime.Now
                        });
                        db.SaveChanges();
                    };
                }

                //VERIFICAR SE ESTÁ NA LISTA PARTICIPANTES, CASO CONTRÁRIO ADICIONA-O
                using (var db = new ContextoParticipante_GrupoTrabalho())
                {
                    var participantes = db.Set <T_Works_Participante_GrupoTrabalho>();

                    var pessoas = participantes.Where(d => d.UsuarioId == usuarioLogadoId && d.GrupoTrabalhoId == Topico_GrupoTrabalho.GrupoTrabalhoId).ToList();

                    if (!pessoas.Select(s => s.UsuarioId == usuarioLogadoId).Any())
                    {
                        participantes.Add(new T_Works_Participante_GrupoTrabalho {
                            GrupoTrabalhoId = Topico_GrupoTrabalho.GrupoTrabalhoId, UsuarioId = usuarioLogadoId
                        });
                        db.SaveChanges();
                    }
                };
            }
            catch (Exception ex)
            {
                return(Json(new { success = false, mensagem = ex.Message }, JsonRequestBehavior.AllowGet));
            }

            return(Json(new { success = true, mensagem = "Comentário adicionado!" }, JsonRequestBehavior.AllowGet));
        }
        public ActionResult ExcluirGrupo(GruposTrabalhoModel gruposTrabalho)
        {
            try
            {
                //REMOVER PARTICIPANTES DO GRUPO
                if (gruposTrabalho.Participantes != null)
                {
                    using (var db = new ContextoParticipante_GrupoTrabalho())
                    {
                        var participantes = db.Set <T_Works_Participante_GrupoTrabalho>();

                        var people = participantes.Where(d => d.GrupoTrabalhoId == gruposTrabalho.Id).ToList();

                        db.Participante_GrupoTrabalho.RemoveRange(people);
                        db.SaveChanges();
                    };
                }

                //REMOVER ADMINISTRADORES DO GRUPO
                if (gruposTrabalho.Administradores != null)
                {
                    using (var db = new ContextoAdmin_GrupoTrabalho())
                    {
                        var administradores = db.Set <T_Works_Admin_GrupoTrabalho>();

                        var people = administradores.Where(d => d.GrupoTrabalhoId == gruposTrabalho.Id).ToList();

                        db.Admin_GrupoTrabalho.RemoveRange(people);
                        db.SaveChanges();
                    };
                }

                //REMOVER COMENTARIOS DO GRUPO
                using (var db = new ContextoComentarioTopico_GrupoTrabalho())
                {
                    var comentarios = db.Set <T_Works_ComentarioTopico_GrupoTrabalho>();

                    var listaComentarios = comentarios.Where(d => d.GrupoTrabalhoId == gruposTrabalho.Id).ToList();

                    db.ComentarioTopico_GrupoTrabalho.RemoveRange(listaComentarios);
                    db.SaveChanges();
                };

                //REMOVER TOPICOS DO GRUPO
                using (var db = new ContextoTopico_GrupoTrabalho())
                {
                    var comentarios = db.Set <T_Works_Topico_GrupoTrabalho>();

                    var listaComentarios = comentarios.Where(d => d.GrupoTrabalhoId == gruposTrabalho.Id).ToList();

                    db.Topico_GrupoTrabalho.RemoveRange(listaComentarios);
                    db.SaveChanges();
                };


                //EXCLUIR GRUPO
                using (var db = new ContextoGrupoTrabalho())
                {
                    var grupoTrabalho = db.Set <T_Works_GruposTrabalho>();

                    var grupo = grupoTrabalho.Where(d => d.Id == gruposTrabalho.Id).FirstOrDefault();

                    db.GruposTrabalho.Remove(grupo);
                    db.SaveChanges();
                };
            }
            catch (Exception ex)
            {
                return(Json(new { success = false, mensagem = ex.Message }, JsonRequestBehavior.AllowGet));
            }

            return(Json(new { success = true, mensagem = "sucesso" }, JsonRequestBehavior.AllowGet));
        }
        public ActionResult SalvarAlteracoesGrupo(GruposTrabalhoModel gruposTrabalho)
        {
            try
            {
                //REMOVER PARTICIPANTES DO GRUPO E ADICIONA-LOS NOVAMENTE
                if (gruposTrabalho.Participantes != null)
                {
                    using (var db = new ContextoParticipante_GrupoTrabalho())
                    {
                        var participantes = db.Set <T_Works_Participante_GrupoTrabalho>();

                        var pessoas = participantes.Where(d => d.GrupoTrabalhoId == gruposTrabalho.Id).ToList();
                        db.Participante_GrupoTrabalho.RemoveRange(pessoas);
                        db.SaveChanges();

                        foreach (var item in gruposTrabalho.Participantes)
                        {
                            participantes.Add(new T_Works_Participante_GrupoTrabalho {
                                GrupoTrabalhoId = gruposTrabalho.Id, UsuarioId = item
                            });
                            db.SaveChanges();
                        }
                    };
                }

                //REMOVER ADMINISTRADORES DO GRUPO E ADICIONA-LOS NOVAMENTE
                if (gruposTrabalho.Administradores != null)
                {
                    using (var db = new ContextoAdmin_GrupoTrabalho())
                    {
                        var administradores = db.Set <T_Works_Admin_GrupoTrabalho>();

                        var pessoas = administradores.Where(d => d.GrupoTrabalhoId == gruposTrabalho.Id).ToList();
                        db.Admin_GrupoTrabalho.RemoveRange(pessoas);
                        db.SaveChanges();

                        foreach (var item in gruposTrabalho.Administradores)
                        {
                            administradores.Add(new T_Works_Admin_GrupoTrabalho {
                                GrupoTrabalhoId = gruposTrabalho.Id, UsuarioId = item
                            });
                            db.SaveChanges();
                        }
                    };
                }

                //ALTERAR STATUS
                using (var db = new ContextoGrupoTrabalho())
                {
                    var grupoTrabalho = db.Set <T_Works_GruposTrabalho>();

                    var grupo = grupoTrabalho.Where(d => d.Id == gruposTrabalho.Id).FirstOrDefault();

                    grupo.Status    = gruposTrabalho.Status;
                    grupo.Permissao = gruposTrabalho.Permissao;

                    db.SaveChanges();
                };
            }
            catch (Exception ex)
            {
                return(Json(new { success = false, mensagem = ex.Message }, JsonRequestBehavior.AllowGet));
            }

            return(Json(new { success = true, mensagem = "sucesso" }, JsonRequestBehavior.AllowGet));
        }