Exemplo n.º 1
0
        public void AddArchivo(int GrupoId, BEArchivo Archivo)
        {
            ePortafolioDBDataContext ePortafolioDAO = new ePortafolioDBDataContext();

            var ArchivoInsert = new Models.Archivo();

            ArchivoInsert.AlumnoId = Archivo.Alumno.AlumnoId;
            ArchivoInsert.ArchivoId = Archivo.ArchivoId;
            ArchivoInsert.Nombre = Archivo.Nombre;
            ArchivoInsert.Ruta = Archivo.Ruta;
            ArchivoInsert.FechaSubida = Archivo.FechaSubido;

            var ArchivoGrupoInsert = new Models.ArchivosGrupo();

            ArchivoGrupoInsert.GrupoId = GrupoId;
            ArchivoGrupoInsert.Archivo = ArchivoInsert;

            ePortafolioDAO.ArchivosGrupos.InsertOnSubmit(ArchivoGrupoInsert);

            ePortafolioDAO.SubmitChanges();
        }
Exemplo n.º 2
0
        public ActionResult UploadFile(int TrabajoId, FormCollection formValues)
        {
            //Si existen multiples archivos, se procesa cada uno por separado
            foreach (string file in Request.Files)
            {

                BEAlumno Alumno = ((BEAlumno)Session["ActualAlumno"]);
                BEGrupo Grupo = RepositoryFactory.GetGrupoRepository().GetGrupoAlumno(TrabajoId, Alumno.AlumnoId);
                BETrabajo Trabajo = RepositoryFactory.GetTrabajoRepository().GetTrabajo(TrabajoId);

                BECurso Curso = new BECurso();

                if (Trabajo.Iniciativa == "UPC")
                    Curso = RepositoryFactory.GetCursoRepository().GetCurso(Trabajo.Curso.CursoId, Trabajo.Periodo.PeriodoId);
                if (Trabajo.Iniciativa == "EST")
                    Curso = new BECurso() { Nombre = "INDEP", Codigo = "INDEP", CursoId = 0 };

                HttpPostedFileBase hpf = Request.Files[file] as HttpPostedFileBase;
                if (hpf.ContentLength == 0)
                    continue;
                //
                // TODO: Incluir ciclo del trabajo, modificar el GUID
                //Nombre del archivo
                String FileNameOnDisk = "#FILENAME".Replace("#FILENAME", System.IO.Path.GetFileName(hpf.FileName));
                //GUID del archivo
                String FileGUIDName = "#GUID".Replace("#GUID", "GUID");
                //Directorio virtual del archivo
                String FileVirtualPathOnDisk = "Files\\#CICLO\\#CURSO\\#TRABAJO\\#GRUPO\\".Replace("#CICLO", "2010-II").Replace("#CURSO", Curso.CursoId.ToString()).Replace("#TRABAJO", Trabajo.Nombre).Replace("#GRUPO", Grupo.GrupoId.ToString());
                //Directorio fisica del archivo
                String FilePathOnDisk = "#BASEDIR#FILEVIRTUALPATH".Replace("#BASEDIR", Server.MapPath("~/")).Replace("#FILEVIRTUALPATH", FileVirtualPathOnDisk);
                //Ruta virtual del archivo
                String CompleteFileVirtualPathOnDisk = "\\" + FileVirtualPathOnDisk + FileGUIDName + "_" + FileNameOnDisk;
                //Ruta fisica del archivo
                String CompleteFilePathPathOnDisk = FilePathOnDisk + FileGUIDName + "_" + FileNameOnDisk;
                //Crea el directorio fisico del archivo
                Directory.CreateDirectory(FilePathOnDisk);
                //Graba el archivo en la ruta fisica del archivo
                hpf.SaveAs(CompleteFilePathPathOnDisk);
                //Crea el archivo para insertar

                BEArchivo Archivo = new BEArchivo
                    {
                        FechaSubido = DateTime.Now,
                        Nombre = FileNameOnDisk,
                        Ruta = CompleteFileVirtualPathOnDisk,
                        Alumno = Alumno
                    };

                RepositoryFactory.GetArchivoRepository().AddArchivo(Grupo.GrupoId, Archivo);

                List<BEAlumno> AlumnosGrupo = RepositoryFactory.GetAlumnoRepository().GetAlumnosGrupo(Grupo.GrupoId);

                foreach (BEAlumno AlumnoGrupo in AlumnosGrupo)
                {
                    String Mensaje = "Estimado #NOMBRE, </br>" +
                                     "Se ha agregado el archivo <b>#ARCHIVO</b> al trabajo <b>#TRABAJO</b> del curso <b>#CURSO</b>";
                    Mensaje = Mensaje.Replace("#NOMBRE", AlumnoGrupo.Nombre);
                    Mensaje = Mensaje.Replace("#ARCHIVO", FileNameOnDisk);
                    Mensaje = Mensaje.Replace("#TRABAJO", Trabajo.Nombre);
                    Mensaje = Mensaje.Replace("#CURSO", Curso.Nombre);

                    EmailHelper.SendMail(AlumnoGrupo.CorreoElectronico, "ePSE - Archivo agregado", Mensaje);
                }
            }

            //Redirecciona a la accion Details de Student con el ID del Trabajo
            return RedirectToAction("Details", new { TrabajoId = TrabajoId });
        }