public ActionResult SalvarGrupoTrabalho(GruposTrabalhoModel gruposTrabalho)
        {
            //Usuario Logado
            var usuarioLogadoId = Int32.Parse(User.Identity.Name);

            int novoIdGrupo = 0;

            try
            {
                //ADICIONAR O GRUPO
                if (gruposTrabalho.Titulo != null && gruposTrabalho.Descricao != null)
                {
                    using (var db = new ContextoGrupoTrabalho())
                    {
                        T_Works_GruposTrabalho grupos = new T_Works_GruposTrabalho();
                        grupos.Titulo      = gruposTrabalho.Titulo;
                        grupos.Descricao   = gruposTrabalho.Descricao;
                        grupos.DataCriacao = DateTime.Now;
                        grupos.UsuarioId   = usuarioLogadoId;

                        var contexto = db.Set <T_Works_GruposTrabalho>();

                        contexto.Add(grupos);

                        var result = db.SaveChanges();

                        novoIdGrupo = grupos.Id;
                    };
                }

                // CRIADOR DO GRUPO É O ADMIN
                using (var db = new ContextoAdmin_GrupoTrabalho())
                {
                    var administradores = db.Set <T_Works_Admin_GrupoTrabalho>();

                    administradores.Add(new T_Works_Admin_GrupoTrabalho {
                        GrupoTrabalhoId = novoIdGrupo, UsuarioId = usuarioLogadoId
                    });
                    db.SaveChanges();
                };
            }
            catch (Exception ex)
            {
                return(Json(new { success = false, mensagem = ex }, JsonRequestBehavior.AllowGet));;
            }

            return(Json(new { success = true, novoId = novoIdGrupo }, JsonRequestBehavior.AllowGet));
        }
        public ActionResult SalvarAlteracaoPostagemGrupoTrabalho(GruposTrabalhoModel gruposTrabalho)
        {
            try
            {
                //ALTERAR POSTAGEM
                using (var db = new ContextoGrupoTrabalho())
                {
                    var grupoTrabalho = db.Set <T_Works_GruposTrabalho>();

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

                    grupo.Descricao = gruposTrabalho.Descricao;

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

            return(Json(new { success = true, mensagem = "sucesso" }, 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));
        }