public ActionResult ParaElMaestro([Bind(Include = "id,FechaInicio,UltimaModificacion,Proceso,Motivacion,Reflexion,ConceptoAsesor,Revisado,idGrupoInvestigacion")] tblReflexionProyectoInvestigacion tbresearchprojectreflexion)
        {
            string userId = AspNetUsers.GetUserId(User.Identity.Name);

            int id = tbresearchprojectreflexion.idGrupoInvestigacion;
            InformacionGrupo infogrupo = new InformacionGrupo();
            var grupo = tblGrupoInvestigacion.Find(id);

            infogrupo.idGrupo     = id;
            infogrupo.Descripcion = grupo.tblPreguntaInvestigacion
                                    .Where(m => m.idGrupoInvestigacion == id)
                                    .Where(m => m.PreguntaPrincipal).Select(m => m.Pregunta).First();
            infogrupo.Institucion = grupo.tblInstitucion.Nombre;
            infogrupo.Municipio   = grupo.tblInstitucion.tblMunicipios.NombreMunicipio;
            infogrupo.NombreGrupo = grupo.Nombre;
            infogrupo.EsCreador   = true;
            ViewBag.InfoGrupo     = infogrupo;

            int idRol = tblMiembroGrupo.GetRoleMiembro(userId, tbresearchprojectreflexion.idGrupoInvestigacion);

            if (idRol != 1)
            {
                return(RedirectToAction("IrABitacoras", new { id = tbresearchprojectreflexion.idGrupoInvestigacion, code = 999 }));
            }

            tbresearchprojectreflexion.UltimaModificacion = DateTime.Now;
            if (ModelState.IsValid)
            {
                db.Entry(tbresearchprojectreflexion).State = EntityState.Modified;
                db.SaveChanges();
                return(RedirectToAction("IrABitacoras", new { id = tbresearchprojectreflexion.idGrupoInvestigacion, code = 110 }));
            }

            return(View(tbresearchprojectreflexion));
        }
        public ActionResult RegistrarGrupo([Bind(Include = "id,Codigo,Nombre,FechaCreacion,TipoGrupo,Avatar,idInstitucion,idLineaInvestigacion,idUsuario")] tblGrupoInvestigacion tblgrupoinvestigacion)
        {
            /// Datos del grupo de investigación adicionales
            /// que se cargan en tiempo de ejecución no en el modelo
            ///
            string userId = AspNetUsers.GetUserId(User.Identity.Name);

            tblgrupoinvestigacion.FechaCreacion = DateTime.Now;
            tblgrupoinvestigacion.Codigo        = dl.Codigos.ResearchGroupCode();
            if (ModelState.IsValid)
            {
                try
                {
                    string fileName = "imagen-no-disponible.jpg";
                    foreach (string file in Request.Files)
                    {
                        HttpPostedFileBase hpf = Request.Files[file] as HttpPostedFileBase;
                        if (hpf.ContentLength == 0)
                        {
                            continue;
                        }
                        string folderPath = Server.MapPath("~/Images/Avatars/");
                        Directory.CreateDirectory(folderPath);
                        string ext = Path.GetExtension(hpf.FileName);
                        fileName = string.Format("img-{0}{1}", tblgrupoinvestigacion.Codigo, ext);
                        string savedFileName = Server.MapPath("~/Images/Avatars/" + fileName);
                        hpf.SaveAs(savedFileName);
                        tblgrupoinvestigacion.Avatar = fileName;
                    }
                    db.tblGrupoInvestigacion.Add(tblgrupoinvestigacion);
                    db.SaveChanges();

                    /// Creación de la reflexion
                    ///
                    tblReflexionProyectoInvestigacion tblreflexion = new tblReflexionProyectoInvestigacion();
                    tblreflexion.idGrupoInvestigacion = tblgrupoinvestigacion.id;
                    tblreflexion.FechaInicio          = DateTime.Now;
                    tblreflexion.Proceso        = "Proceso";
                    tblreflexion.Motivacion     = "Motivación";
                    tblreflexion.Reflexion      = "Reflexión";
                    tblreflexion.ConceptoAsesor = "Espacio para el Asesor";
                    db.tblReflexionProyectoInvestigacion.Add(tblreflexion);
                    db.SaveChanges();


                    /// Creación de la pregunta
                    ///
                    tblPreguntaInvestigacion tblpregunta;

                    if (tblgrupoinvestigacion.TipoGrupo == 2)
                    {
                        for (int i = 0; i <= 5; i++)
                        {
                            tblpregunta = new tblPreguntaInvestigacion();
                            tblpregunta.idGrupoInvestigacion = tblgrupoinvestigacion.id;
                            tblpregunta.Consecutivo          = i;
                            tblpregunta.FechaCreacion        = DateTime.Now;
                            if (i == 0)
                            {
                                tblpregunta.Pregunta          = "Escriba la Pregunta seleccionada";
                                tblpregunta.PreguntaPrincipal = true;
                            }
                            else
                            {
                                tblpregunta.Pregunta          = string.Format("Escriba la Pregunta {0}", i.ToString());
                                tblpregunta.PreguntaPrincipal = false;
                            }
                            db.tblPreguntaInvestigacion.Add(tblpregunta);
                            db.SaveChanges();
                        }

                        tblPreguntaProyectoInvestigacion tblpreguntaproyecto = new tblPreguntaProyectoInvestigacion();
                        tblpreguntaproyecto.idGrupoInvestigacion = tblgrupoinvestigacion.id;
                        db.tblPreguntaProyectoInvestigacion.Add(tblpreguntaproyecto);
                        db.SaveChanges();

                        tblProblemaInvestigacion tblproblemainvestigacion = new tblProblemaInvestigacion();

                        tblproblemainvestigacion.idGrupoInvestigacion = tblgrupoinvestigacion.id;
                        db.tblProblemaInvestigacion.Add(tblproblemainvestigacion);
                        db.SaveChanges();

                        tblProblemaProyectoInvestigacion tblproblemaproyectoinvestigacion = new tblProblemaProyectoInvestigacion();

                        tblproblemaproyectoinvestigacion.idGrupoInvestigacion = tblgrupoinvestigacion.id;
                        db.tblProblemaProyectoInvestigacion.Add(tblproblemaproyectoinvestigacion);
                        db.SaveChanges();
                    }
                    else
                    {
                        tblDocumentosSoporte tbldocumentos = new tblDocumentosSoporte();
                        tbldocumentos.idGrupoInvestigacion = tblgrupoinvestigacion.id;
                        db.tblDocumentosSoporte.Add(tbldocumentos);
                        db.SaveChanges();
                    }
                    /// Grupo creado satisfactoriamente
                    return(RedirectToAction("Index", new { code = 10 }));
                }
                catch (Exception)
                {
                    return(RedirectToAction("Index", new { code = 20 }));
                }
            }
            ViewBag.idLineaInvestigacion    = new SelectList(db.tblLineaInvestigacion, "id", "Nombre");
            tblgrupoinvestigacion.idUsuario = AspNetUsers.GetUserId(User.Identity.Name);
            return(View(tblgrupoinvestigacion));
        }