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(); }
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 }); }