/* * Genera datos automáticamente dentro de la base de * datos (UsuariosUABC) en caso de encontrarse vacía */ public async Task GeneraDatosSemilla() { // Checa si las tablas de la base de dato se encuentran vacía if (!_context.Roles.Any()) { var rolAmin = new Rol() { Nombre = "Administrador" }; var rolUsuario = new Rol() { Nombre = "Docente" }; _context.Roles.Add(rolAmin); _context.Roles.Add(rolUsuario); await _context.SaveChangesAsync(); } if (!_context.Carreras.Any()) { var Civil = new Carrera() { Nombre = "Ingeniería Civil" }; var Electronica = new Carrera() { Nombre = "Ingeniería Electrónica" }; var Computacion = new Carrera() { Nombre = "Ingeniería en Computación" }; var Industrial = new Carrera() { Nombre = "Ingeniería Industrial" }; var Bioingenieria = new Carrera() { Nombre = "Bioingeniería" }; var Nanotecnologia = new Carrera() { Nombre = "Nanotecnología" }; var Arquitectura = new Carrera() { Nombre = "Arquitectura" }; _context.Carreras.Add(Civil); _context.Carreras.Add(Electronica); _context.Carreras.Add(Computacion); _context.Carreras.Add(Industrial); _context.Carreras.Add(Bioingenieria); _context.Carreras.Add(Nanotecnologia); _context.Carreras.Add(Arquitectura); await _context.SaveChangesAsync(); } if (!_context.Materias.Any()) { var EstucIso = new Materia() { Id = 11934, Nombre = "Estructuras Isostáticas", Carrera = "Ingeniería Civil" }; var Dinamica = new Materia() { Id = 11347, Nombre = "Dinámica", Carrera = "Ingeniería Civil" }; var CircElec = new Materia() { Id = 11675, Nombre = "Circuitos Electrónicos", Carrera = "Ingeniería Electrónica" }; var Mecanismos = new Materia() { Id = 11896, Nombre = "Mecanismos", Carrera = "Ingeniería Electrónica" }; var IngSoft = new Materia() { Id = 12119, Nombre = "Ingeniería de Software", Carrera = "Ingeniería en Computación" }; var AdmRedes = new Materia() { Id = 12117, Nombre = "Admon. y Seguridad en Redes", Carrera = "Ingeniería en Computación" }; var ApWeb = new Materia() { Id = 12146, Nombre = "Desarrollo de Aplicaciones Web", Carrera = "Ingeniería en Computación" }; var TermoCienc = new Materia() { Id = 4357, Nombre = "Termociencia", Carrera = "Ingeniería Industrial" }; var MetodNum = new Materia() { Id = 5311, Nombre = "Métodos Numéricos", Carrera = "Ingeniería Industrial" }; var CircLineal = new Materia() { Id = 11789, Nombre = "Circuitos Lineales", Carrera = "Bioingeniería" }; var QuimOrg = new Materia() { Id = 11788, Nombre = "Química Orgánica", Carrera = "Bioingeniería" }; var TermDin = new Materia() { Id = 13177, Nombre = "Termodinámica", Carrera = "Nanotecnología" }; var BioGen = new Materia() { Id = 13179, Nombre = "Biología General", Carrera = "Nanotecnología" }; var MatSis = new Materia() { Id = 9761, Nombre = "Materiales y Sistemas Constructivos", Carrera = "Arquitectura" }; var Estructuras = new Materia() { Id = 9757, Nombre = "Estructuras", Carrera = "Arquitectura" }; _context.Materias.Add(EstucIso); _context.Materias.Add(Dinamica); _context.Materias.Add(CircElec); _context.Materias.Add(Mecanismos); _context.Materias.Add(IngSoft); _context.Materias.Add(AdmRedes); _context.Materias.Add(ApWeb); _context.Materias.Add(TermoCienc); _context.Materias.Add(MetodNum); _context.Materias.Add(CircLineal); _context.Materias.Add(QuimOrg); _context.Materias.Add(TermDin); _context.Materias.Add(BioGen); _context.Materias.Add(MatSis); _context.Materias.Add(Estructuras); await _context.SaveChangesAsync(); } if (!_context.SubtiposExamen.Any()) { var Complementaria = new SubtipoExamen() { Nombre = "Complementaria" }; var Equivalencia = new SubtipoExamen() { Nombre = "Equivalencia" }; var Correccion = new SubtipoExamen() { Nombre = "Corrección" }; _context.SubtiposExamen.Add(Complementaria); _context.SubtiposExamen.Add(Equivalencia); _context.SubtiposExamen.Add(Correccion); await _context.SaveChangesAsync(); } if (!_context.TiposExamen.Any()) { var Ordinario = new TipoExamen() { Nombre = "Ordinario" }; var Extraordinario = new TipoExamen() { Nombre = "Extraordinario" }; var Regularizacion = new TipoExamen() { Nombre = "Regularizacion" }; var OrdinarioInter = new TipoExamen() { Nombre = "Ordinario Intersemestral" }; var ExtraInter = new TipoExamen() { Nombre = "Extraordinario intersemestral" }; var RegInter = new TipoExamen() { Nombre = "Regularización Intersemestral" }; var EvalPerm = new TipoExamen() { Nombre = "Evaluación Permanente" }; _context.TiposExamen.Add(Ordinario); _context.TiposExamen.Add(Extraordinario); _context.TiposExamen.Add(Regularizacion); _context.TiposExamen.Add(OrdinarioInter); _context.TiposExamen.Add(ExtraInter); _context.TiposExamen.Add(RegInter); _context.TiposExamen.Add(EvalPerm); await _context.SaveChangesAsync(); } if (!_context.Estados.Any()) { var Pendiente = new Estado() { FechaModificacion = DateTime.Now, Nombre = "Pendiente" }; var Aceptado = new Estado() { FechaModificacion = DateTime.Now, Nombre = "Aceptado" }; var Rechazado = new Estado() { FechaModificacion = DateTime.Now, Nombre = "Rechazado" }; _context.Estados.Add(Pendiente); _context.Estados.Add(Aceptado); _context.Estados.Add(Rechazado); await _context.SaveChangesAsync(); } if (!_context.Usuarios.Any()) { var usuarioA = new Usuario() { Id = 338323, Nombre = "José Ramón", ApellidoP = "López", ApellidoM = "Madueño", Correo = "*****@*****.**", RolId = 1 }; var usuarioB = new Usuario() { Id = 335127, Nombre = "César Samuel", ApellidoP = "Parra", ApellidoM = "Salas", Correo = "*****@*****.**", RolId = 1 }; var usuarioC = new Usuario() { Id = 331364, Nombre = "Celso", ApellidoP = "Figueroa", ApellidoM = "Jacinto", Correo = "*****@*****.**", RolId = 1 }; _context.Usuarios.Add(usuarioA); _context.Usuarios.Add(usuarioB); _context.Usuarios.Add(usuarioC); await _context.SaveChangesAsync(); } }
public FileStreamResult GenerarPDF(int id) { SolicitudAdmin admin = _servicioSolicitud.ObtenerSolicitudAministrativa(id); SolicitudDocente docente = _servicioSolicitud.ObtenerSolicitudDocente(id); IEnumerable <SolicitudAlumno> alumnos = _servicioSolicitud.ObtenerSolicitudesAlumno(docente.Id); Usuario solicitante = _servicioUsuario.ObtenerUsuario(docente.IdEmpleado); Materia materia = _servicioUsuario.ObtenerMateria(docente.IdMateria); Carrera carrera = _servicioUsuario.ObtenerCarrera(docente.IdCarrera); TipoExamen tipoExamen = _servicioUsuario.ObtenerTipoExamen(docente.IdTipoExamen); SubtipoExamen subTipoExamen = _servicioUsuario.ObtenerSubtipoExamen(admin.IdSubtipoExamen); int grupoSolicitud = alumnos.FirstOrDefault().Alumno.Grupo; MemoryStream workStream = new MemoryStream(); Document document = new Document(PageSize.Letter); document.SetMargins(50, 50, 50, 50); PdfWriter.GetInstance(document, workStream).CloseStream = false; document.Open(); document.AddTitle("Solicitud CAEF"); Font TitleFont = new Font(Font.HELVETICA, 12, Font.BOLD, BaseColor.Black); Paragraph Title = new Paragraph("UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA", TitleFont); Title.Alignment = Element.ALIGN_CENTER; document.Add(Chunk.Newline); document.Add(Title); document.Add(Chunk.Newline); Font SubtitleFont = new Font(Font.HELVETICA, 12, Font.BOLD, BaseColor.Gray); Paragraph Subtitle = new Paragraph("COORDINACIÓN DE SERVICIOS ESTUDIANTILES Y GESTIÓN ESCOLAR", SubtitleFont); Paragraph Subtitle2 = new Paragraph("ACTA DE EVALUACION FINAL", SubtitleFont); Subtitle.Alignment = Element.ALIGN_CENTER; Subtitle2.Alignment = Element.ALIGN_CENTER; document.Add(Subtitle); document.Add(Subtitle2); document.Add(Chunk.Newline); Font TextoIzquierdaFont = new Font(Font.TIMES_ROMAN, 10, Font.BOLD, BaseColor.Black); Paragraph subDir = new Paragraph("SUBDIRECCIÓN", TextoIzquierdaFont); subDir.Alignment = Element.ALIGN_RIGHT; document.Add(subDir); DateTime fecha = DateTime.Now; Font TextoIzquierdaNo = new Font(Font.TIMES_ROMAN, 8, Font.NORMAL, BaseColor.Black); int periodo = 1; if (fecha.Month > 6) { periodo = 2; } Paragraph No = new Paragraph("No.10/" + (fecha.Year - 2000) + "-" + periodo, TextoIzquierdaNo); No.Alignment = Element.ALIGN_RIGHT; document.Add(No); Paragraph Asunto = new Paragraph("Asunto: Control de Actas", TextoIzquierdaNo); Asunto.Alignment = Element.ALIGN_RIGHT; document.Add(Asunto); var mes = DateTime.Now.ToString("MMMM", new CultureInfo("es-ES")); Paragraph Fecha = new Paragraph("Ensenada, B.C, a " + fecha.Day + " de " + mes + " del " + fecha.Year, TextoIzquierdaFont); Fecha.Alignment = Element.ALIGN_RIGHT; document.Add(Fecha); document.Add(Chunk.Newline); Font examenFont = new Font(Font.TIMES_ROMAN, 10, Font.UNDERLINE, BaseColor.Black); Chunk examenUnderline = new Chunk(tipoExamen.Nombre + " (" + subTipoExamen.Nombre + ")", examenFont); Paragraph examenInfo = new Paragraph("EXAMEN: " + examenUnderline); examenInfo.Alignment = Element.ALIGN_CENTER; document.Add(examenInfo); document.Add(Chunk.Newline); PdfPTable table = new PdfPTable(11); table.TotalWidth = 500f; table.LockedWidth = true; Font TablaFont = new Font(Font.TIMES_ROMAN, 8, Font.NORMAL, BaseColor.Black); PdfPCell claveUnidadT = new PdfPCell(new Phrase("CLAVE DE UNIDAD", TablaFont)); claveUnidadT.Colspan = 1; claveUnidadT.HorizontalAlignment = 1; claveUnidadT.BackgroundColor = new BaseColor(193, 193, 193); PdfPCell unidadAcademicaT = new PdfPCell(new Phrase("UNIDAD ACADEMICA", TablaFont)); unidadAcademicaT.Colspan = 4; unidadAcademicaT.HorizontalAlignment = 1; unidadAcademicaT.BackgroundColor = new BaseColor(193, 193, 193); PdfPCell claveCarreraT = new PdfPCell(new Phrase("CLAVE CARRERA", TablaFont)); claveCarreraT.Colspan = 1; claveCarreraT.HorizontalAlignment = 1; claveCarreraT.BackgroundColor = new BaseColor(193, 193, 193); PdfPCell celdaCarreraT = new PdfPCell(new Phrase("CARRERA", TablaFont)); celdaCarreraT.Colspan = 3; celdaCarreraT.HorizontalAlignment = 1; celdaCarreraT.BackgroundColor = new BaseColor(193, 193, 193); PdfPCell planEstudiosT = new PdfPCell(new Phrase("PLAN DE ESTUDIOS", TablaFont)); planEstudiosT.Colspan = 2; planEstudiosT.HorizontalAlignment = 1; planEstudiosT.BackgroundColor = new BaseColor(193, 193, 193); PdfPCell claveUnidad = new PdfPCell(new Phrase(admin.ClaveUnidad)); claveUnidad.Colspan = 1; claveUnidad.HorizontalAlignment = 1; PdfPCell unidadAcademica = new PdfPCell(new Phrase(admin.UnidadAcademica)); unidadAcademica.Colspan = 4; unidadAcademica.HorizontalAlignment = 1; PdfPCell claveCarrera = new PdfPCell(new Phrase(carrera.Id + "")); claveCarrera.Colspan = 1; claveCarrera.HorizontalAlignment = 1; PdfPCell celdaCarrera = new PdfPCell(new Phrase(carrera.Nombre)); celdaCarrera.Colspan = 3; celdaCarrera.HorizontalAlignment = 1; PdfPCell planEstudios = new PdfPCell(new Phrase(admin.PlanEstudios)); planEstudios.Colspan = 2; planEstudios.HorizontalAlignment = 1; PdfPCell claveMateriaT = new PdfPCell(new Phrase("CLAVE DE MATERIA", TablaFont)); claveMateriaT.Colspan = 1; claveMateriaT.HorizontalAlignment = 1; claveMateriaT.BackgroundColor = new BaseColor(193, 193, 193); PdfPCell MateriaT = new PdfPCell(new Phrase("MATERIA", TablaFont)); MateriaT.Colspan = 5; MateriaT.HorizontalAlignment = 1; MateriaT.BackgroundColor = new BaseColor(193, 193, 193); PdfPCell SemestreT = new PdfPCell(new Phrase("SEMESTRE", TablaFont)); SemestreT.Colspan = 1; SemestreT.HorizontalAlignment = 1; SemestreT.BackgroundColor = new BaseColor(193, 193, 193); PdfPCell GrupoT = new PdfPCell(new Phrase("GRUPO", TablaFont)); GrupoT.Colspan = 1; GrupoT.HorizontalAlignment = 1; GrupoT.BackgroundColor = new BaseColor(193, 193, 193); PdfPCell CicloT = new PdfPCell(new Phrase("CICLO ESCOLAR", TablaFont)); CicloT.Colspan = 1; CicloT.HorizontalAlignment = 1; CicloT.BackgroundColor = new BaseColor(193, 193, 193); PdfPCell PeriodoT = new PdfPCell(new Phrase("PERIODO", TablaFont)); PeriodoT.Colspan = 2; PeriodoT.HorizontalAlignment = 1; PeriodoT.BackgroundColor = new BaseColor(193, 193, 193); PdfPCell claveMateria = new PdfPCell(new Phrase(materia.Id + "")); claveMateria.Colspan = 1; claveMateria.HorizontalAlignment = 1; PdfPCell Materia = new PdfPCell(new Phrase(materia.Nombre)); Materia.Colspan = 5; Materia.HorizontalAlignment = 1; PdfPCell Semestre = new PdfPCell(new Phrase(admin.EtapaSemestre)); Semestre.Colspan = 1; Semestre.HorizontalAlignment = 1; PdfPCell Grupo = new PdfPCell(new Phrase(grupoSolicitud + "")); Grupo.Colspan = 1; Grupo.HorizontalAlignment = 1; PdfPCell Ciclo = new PdfPCell(new Phrase(admin.CicloEscolar)); Ciclo.Colspan = 1; Ciclo.HorizontalAlignment = 1; PdfPCell Periodo = new PdfPCell(new Phrase(docente.Periodo)); Periodo.Colspan = 2; Periodo.HorizontalAlignment = 1; table.AddCell(claveUnidadT); table.AddCell(unidadAcademicaT); table.AddCell(claveCarreraT); table.AddCell(celdaCarreraT); table.AddCell(planEstudiosT); table.AddCell(claveUnidad); table.AddCell(unidadAcademica); table.AddCell(claveCarrera); table.AddCell(celdaCarrera); table.AddCell(planEstudios); table.AddCell(claveMateriaT); table.AddCell(MateriaT); table.AddCell(SemestreT); table.AddCell(GrupoT); table.AddCell(CicloT); table.AddCell(PeriodoT); table.AddCell(claveMateria); table.AddCell(Materia); table.AddCell(Semestre); table.AddCell(Grupo); table.AddCell(Ciclo); table.AddCell(Periodo); document.Add(table); document.Add(Chunk.Newline); PdfPTable tablaAlumnos = new PdfPTable(11); tablaAlumnos.TotalWidth = 500f; tablaAlumnos.LockedWidth = true; PdfPCell ContadorT = new PdfPCell(new Phrase("NO.", TablaFont)); ContadorT.Colspan = 1; ContadorT.HorizontalAlignment = 1; ContadorT.BackgroundColor = new BaseColor(193, 193, 193); PdfPCell NombreAlumnoT = new PdfPCell(new Phrase("NOMBRE DEL ALUMNO", TablaFont)); NombreAlumnoT.Colspan = 6; NombreAlumnoT.HorizontalAlignment = 1; NombreAlumnoT.BackgroundColor = new BaseColor(193, 193, 193); PdfPCell MatriculaT = new PdfPCell(new Phrase("MATRICULA", TablaFont)); MatriculaT.Colspan = 2; MatriculaT.HorizontalAlignment = 1; MatriculaT.BackgroundColor = new BaseColor(193, 193, 193); PdfPCell CalificacionT = new PdfPCell(new Phrase("CALIFICACION", TablaFont)); CalificacionT.Colspan = 2; CalificacionT.HorizontalAlignment = 1; CalificacionT.BackgroundColor = new BaseColor(193, 193, 193); tablaAlumnos.AddCell(ContadorT); tablaAlumnos.AddCell(NombreAlumnoT); tablaAlumnos.AddCell(MatriculaT); tablaAlumnos.AddCell(CalificacionT); int count = 1; foreach (SolicitudAlumno solicitud in alumnos) { PdfPCell Contador = new PdfPCell(new Phrase(count++ + "")); Contador.Colspan = 1; Contador.HorizontalAlignment = 1; PdfPCell NombreAlumno = new PdfPCell(new Phrase(solicitud.Alumno.Nombre + " " + solicitud.Alumno.ApellidoP + " " + solicitud.Alumno.ApellidoM)); NombreAlumno.Colspan = 6; NombreAlumno.HorizontalAlignment = 1; PdfPCell Matricula = new PdfPCell(new Phrase(solicitud.Alumno.Id + "")); Matricula.Colspan = 2; Matricula.HorizontalAlignment = 1; PdfPCell Calificacion = new PdfPCell(new Phrase(solicitud.Alumno.Promedio + "")); Calificacion.Colspan = 2; Calificacion.HorizontalAlignment = 1; tablaAlumnos.AddCell(Contador); tablaAlumnos.AddCell(NombreAlumno); tablaAlumnos.AddCell(Matricula); tablaAlumnos.AddCell(Calificacion); } document.Add(tablaAlumnos); document.Add(Chunk.Newline); PdfPTable tablaMotivo = new PdfPTable(1); tablaMotivo.TotalWidth = 500f; tablaMotivo.LockedWidth = true; PdfPCell MotivoT = new PdfPCell(new Phrase("MOTIVO", TablaFont)); MotivoT.Colspan = 1; MotivoT.HorizontalAlignment = 1; MotivoT.BackgroundColor = new BaseColor(193, 193, 193); PdfPCell Motivo = new PdfPCell(new Phrase(docente.Motivo)); Motivo.Colspan = 1; Motivo.HorizontalAlignment = 0; tablaMotivo.AddCell(MotivoT); tablaMotivo.AddCell(Motivo); document.Add(tablaMotivo); document.Close(); byte[] byteInfo = workStream.ToArray(); workStream.Write(byteInfo, 0, byteInfo.Length); workStream.Position = 0; return(new FileStreamResult(workStream, "application/pdf")); }