예제 #1
0
        /*
         * 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();
            }
        }
예제 #2
0
        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"));
        }