public Subject RegistrarNewSubject(string txtBoxMateria, string txtBoxTeachear) { using (AcademyDbContext context = new AcademyDbContext()) { Subject resultSubject = null; if (!string.IsNullOrWhiteSpace(txtBoxMateria) && !string.IsNullOrWhiteSpace(txtBoxTeachear)) { Subject dummySubject = new Subject(txtBoxMateria, txtBoxTeachear); var result = context.ListaSubjets.Where(x => x.Name.Equals(txtBoxMateria)); if (result != null && result.Count() > 0) { Console.WriteLine($"SOS esa materia ya la imparte {result.First().Teacher}"); } else { context.ListaSubjets.Add(dummySubject); context.SaveChanges(); Console.WriteLine($"Materia {dummySubject.Name} impartida por {dummySubject.Teacher}, guardada correctamente"); resultSubject = dummySubject; } } else { Console.WriteLine("Los campos Subject y/o Teacher no contienen información o no es válida"); } return(resultSubject); } }
public string DeleteStudent(string txtBoxNombre, string txtBoxDni) { if (!string.IsNullOrWhiteSpace(txtBoxNombre) && !string.IsNullOrWhiteSpace(txtBoxDni)) { using (AcademyDbContext context = new AcademyDbContext()) { context.ListaStudents.Remove(SelectStudentByDNI(txtBoxDni)); context.SaveChanges(); } /* TODO * Guid guid = DictionayStudents.FirstOrDefault(x => x.Value.Dni == txtBoxDni).Key; * DictionayStudents.Remove(guid); * DniIndexStudents.Remove(txtBoxDni); */ //Borramos si coinciden los dos campos exactamente //Student dummyStudent = new Student(txtBoxNombre, txtBoxDni); //ListaStudents.Remove(dummyStudent); //Borramos si coincide el DNI en listas //ListaStudents.RemoveAll(x => x.Dni.Equals(dummyStudent.Dni) ); Console.WriteLine("Alumno borrado correctamente"); } else { Console.WriteLine("Los campos Nombre y/o DNI no contienen información o no es válida"); txtBoxNombre = null; } return(txtBoxNombre); }
/// <summary> /// Devolverá todos los examenes del parámetro Student por dni /// </summary> /// <param name="student"></param> /// <returns></returns> public string ListExamsAlumno(Student student) { var salida = ""; int posicion = 1; Guid studentGuid = student.Id; List <Exam> tmpListExams; using (AcademyDbContext context = new AcademyDbContext()) { tmpListExams = context.ListaExams.ToList(); } foreach (Exam exam in tmpListExams) { if (exam.StudentGuid.Equals(studentGuid)) { using (AcademyDbContext context = new AcademyDbContext()) { Subject subject = context.ListaSubjets.FirstOrDefault(x => x.Id.Equals(exam.SubjectGuid)); salida += $"{posicion}-) El día {exam.DateTimeExam} el alumno {student.Name} en la materia {subject.Name}, ha obtenido una nota de {exam.Score}. {NewLine}"; } posicion++; } } return(salida); }
/// <summary> /// Imprimime por consola los alumnos. Devuelve la cantidad de alumnos +1 (lo que 1 es = 0 alumnos) /// </summary> public List <Student> ListStudents() { List <Student> tmpListStudents = null; using (AcademyDbContext context = new AcademyDbContext()) { try { tmpListStudents = context.ListaStudents.ToList(); int posicion = 1; foreach (Student student in context.ListaStudents) { Console.WriteLine($"{posicion}-) {student.Name} con DNI: {student.Dni}"); posicion++; } } catch (System.InvalidOperationException e) { Console.WriteLine($"Se ha producido un error al conectar con el SGBD con message: {e.Message}"); Console.WriteLine($"Revisa la conexión y que esté levandada la base de datos."); Console.WriteLine($"Si tienes conexión pero no está creada, recuerda: desde consola de administración de paquetes: add-migration y add-database"); System.Diagnostics.Debug.WriteLine($"Se ha producido un error al conectar con el SGBD con message: {e.Message}"); System.Diagnostics.Debug.WriteLine($"En caso de Unknown Database, Fíjate que la base de datos esté creada y que tengas acceso al server"); System.Diagnostics.Debug.WriteLine($"Si no está creada recuerda: desde consola de administración de paquetes: add-migration y add-database"); } return(tmpListStudents); } }
public Subject SelectSubjetByName(string name) { using (AcademyDbContext context = new AcademyDbContext()) { var result = context.ListaSubjets.Where(x => x.Name.Equals(name)); if (result.Any()) { return(result.First()); } return(null); } }
/// <summary> /// Imprimime por consola los alumnos. Devuelve la cantidad de alumnos +1 (lo que 1 es = 0 alumnos) /// </summary> public int ListStudents() { using (AcademyDbContext context = new AcademyDbContext()) { int posicion = 1; foreach (Student student in context.ListaStudents) { Console.WriteLine($"{posicion}-) {student.Name} con DNI: {student.Dni}"); posicion++; } return(posicion); } }
public int ListSubjets() { int posicion = 1; using (AcademyDbContext context = new AcademyDbContext()) { foreach (Subject subjet in context.ListaSubjets) { Console.WriteLine($"{posicion}-) {subjet.Name} imparte: {subjet.Teacher}"); posicion++; } } return(posicion); }
public void CalcularMaxMedMin() { //Exam notaMin = context.ListaExams.Aggregate((i1, i2) => i1.Score < i2.Score ? i1 : i2); //Exam notaMax = context.ListaExams.Aggregate((i1, i2) => i1.Score > i2.Score ? i1 : i2); using (AcademyDbContext context = new AcademyDbContext()) { double notaMedia = context.ListaExams.Average(x => x.Score); List <Exam> tmpMNotaMinExams = context.ListaExams.ToList(); List <Exam> tmpMNotaMaxExams = context.ListaExams.ToList(); Exam notaMin = tmpMNotaMinExams.Aggregate((i1, i2) => i1.Score < i2.Score ? i1 : i2); Exam notaMax = tmpMNotaMaxExams.Aggregate((i1, i2) => i1.Score > i2.Score ? i1 : i2); Console.WriteLine($"Med: {notaMedia} Min: {notaMin.Score} Max: {notaMax.Score}"); } }
public List <Subject> ListSubjets() { int posicion = 1; List <Subject> tmpListSubjects; using (AcademyDbContext context = new AcademyDbContext()) { tmpListSubjects = context.ListaSubjets.ToList(); foreach (Subject subjet in context.ListaSubjets) { Console.WriteLine($"{posicion}-) {subjet.Name} imparte: {subjet.Teacher}"); posicion++; } } return(tmpListSubjects); }
/*Version ValidationResults */ public SaveResult <Student> SaveStudent(Student student) { using (AcademyDbContext context = new AcademyDbContext()) { var output = new SaveResult <Student>() { Entity = student }; if (student != null) { try { var result = context.ListaStudents.Where(x => x.Dni.Equals(student.Dni)); if (result != null && result.Count() > 0) { output.IsSuccess = false; output.Validation.Errors.Add($"El alumno {result.First().Name} ya está registrado con este dni, por favor, reviselos."); } else { output.IsSuccess = true; context.Add(student); context.SaveChanges(); student.Save(); output.Validation.Errors.Add("Alumno guardado correctamente. ¿Qué quieres hacer ahora?"); } } catch (MySql.Data.MySqlClient.MySqlException e) { Console.WriteLine($"Se ha producido un error con el SGBD con error code:{e.ErrorCode} y por el motivo: {e.Message}"); Console.WriteLine($"En caso de Unknown Database, Fíjate que la base de datos esté creada y que tengas acceso al server"); Console.WriteLine($"Si no está creada recuerda: desde consola de administración de paquetes: add-migration y add-database"); System.Diagnostics.Debug.WriteLine($"Se ha producido un error con el SGBD con error code:{e.ErrorCode} y por el motivo: {e.Message}"); System.Diagnostics.Debug.WriteLine($"En caso de Unknown Database, Fíjate que la base de datos esté creada y que tengas acceso al server"); System.Diagnostics.Debug.WriteLine($"Si no está creada recuerda: desde consola de administración de paquetes: add-migration y add-database"); } } else { output.Validation.Errors.Add("Los campos Nombre y/o DNI no contienen información o no es válida"); } Console.WriteLine(output.AllErrors); return(output); } }
public Student SelectStudentByDNI(string dni) { using (AcademyDbContext context = new AcademyDbContext()) { Student result = context.ListaStudents.FirstOrDefault(x => x.Dni.Equals(dni)); if (result != null) { return(result); } /* if (result.Any()) * { * return result.First().Value; * }*/ return(result); } }
/// <summary> /// Actualizará la materia según el Teacher y nos devolverá el valor anterior /// </summary> /// <param name="txtBoxMateria"></param> /// <param name="txtBoxTeachear"></param> /// <returns>Nombre anterior para update combobox</returns> public string UpdateSubject(string txtBoxMateria, string txtBoxTeachear) { List <Subject> tmpListSubjects; using (AcademyDbContext context = new AcademyDbContext()) { tmpListSubjects = context.ListaSubjets.ToList(); } var salida = ""; var anterior = ""; if (!string.IsNullOrWhiteSpace(txtBoxMateria) && !string.IsNullOrWhiteSpace(txtBoxTeachear)) { Subject dummySubject = new Subject(txtBoxMateria, txtBoxTeachear); foreach (Subject subject in tmpListSubjects) { if (dummySubject.Name.Equals(subject.Name)) { anterior = subject.Teacher; subject.Teacher = txtBoxTeachear; using (AcademyDbContext context = new AcademyDbContext()) { context.Update(subject); context.SaveChanges(); } salida = $"Se ha actualizado la materia {txtBoxMateria}, ahora la imparte {txtBoxTeachear}"; return(anterior); } else { salida = $"No se ha localizado la asignatura {txtBoxMateria}"; } } } else { salida = "Los campos Materia y/o Teacher no contienen información o no es válida"; } Console.WriteLine(salida); return(anterior); }
/// <summary> /// Actualizará el nombre del alumno por el DNI y nos devolverá el nombre anterior /// </summary> /// <param name="txtBoxNombre"></param> /// <param name="txtBoxDni"></param> /// <returns>Nombre anterior para update combobox</returns> public string UpdateStudent(string txtBoxNombre, string txtBoxDni) { List <Student> tmpListStudents; using (AcademyDbContext context = new AcademyDbContext()) { tmpListStudents = context.ListaStudents.ToList(); } var anterior = ""; var salida = ""; if (!string.IsNullOrWhiteSpace(txtBoxNombre) && !string.IsNullOrWhiteSpace(txtBoxDni)) { Student dummyStudent = new Student(txtBoxNombre, txtBoxDni); foreach (Student student in tmpListStudents) { if (txtBoxDni.Equals(student.Dni)) { anterior = student.Name; student.Name = txtBoxNombre; using (AcademyDbContext context = new AcademyDbContext()) { context.Update(student); context.SaveChanges(); } salida = $"Se ha actualizado el nombre del alumno con dni {txtBoxDni}"; return(anterior); } else { salida = $"No se ha localizado ningún alumno con el {txtBoxDni}"; } } } else { salida = "Los campos Nombre y/o DNI no contienen información o no es válida"; } Console.WriteLine(salida); return(anterior); }
public string RegistrarNewExam(Guid student, Guid subject, DateTime timeStamp, double score) { using (AcademyDbContext context = new AcademyDbContext()) { var salida = ""; Exam dummyExam = new Exam(student, subject, timeStamp, score); var result = context.ListaExams.Where(x => x.StudentGuid.Equals(dummyExam.StudentGuid) && x.SubjectGuid.Equals(dummyExam.SubjectGuid) && x.DateTimeExam.Equals(dummyExam.DateTimeExam)); if (result != null && result.Count() > 0) { salida = "SOS este alumno ya ha realizado este examen en la misma fecha"; } else { context.ListaExams.Add(dummyExam); context.SaveChanges(); salida = "Examen guardado correctamente"; } return(salida); } }
public string DeleteSubject(string txtBoxMateria, string txtBoxTeachear) { if (!string.IsNullOrWhiteSpace(txtBoxMateria) && !string.IsNullOrWhiteSpace(txtBoxTeachear)) { using (AcademyDbContext context = new AcademyDbContext()) { //Borramos si coinciden los dos campos exactamente Subject dummySubject = new Subject(txtBoxMateria, txtBoxTeachear); context.ListaSubjets.Remove(dummySubject); context.SaveChanges(); //Borramos si coincide con la materia // ListaSubjets.Remove(x => x.Name.Equals(dummySubject.Name)); Console.WriteLine("Subject borrada correctamente"); } } else { Console.WriteLine("Los campos Materia y/o Teacher no contienen información o no es válida"); txtBoxTeachear = null; } return(txtBoxMateria); }
public string UpdateExam(Guid studentGuid, Guid subjectGuid, DateTime timeStamp, double score) { using (AcademyDbContext context = new AcademyDbContext()) { Student student = context.ListaStudents.FirstOrDefault(x => x.Id.Equals(studentGuid)); Subject subject = context.ListaSubjets.FirstOrDefault(x => x.Id.Equals(subjectGuid)); var salida = ""; if ((student != null) && (subject != null) && (timeStamp != null)) { Exam dummyExam = new Exam(studentGuid, subjectGuid, timeStamp, score); foreach (Exam exam in context.ListaExams) { if (studentGuid.Equals(student.Id) && subjectGuid.Equals(subject.Id)) { salida = $"Se ha actualizado la nota a {student.Name} por el profesor {subject.Teacher}"; exam.DateTimeExam = timeStamp; exam.Score = score; context.Update(exam); context.SaveChanges(); return(salida); } else { salida = $"No se ha localizado el examen de la materia " + $"{subject.Name} para {student.Name}." + $" Si quiere lo puede dar de alta clicando en Add Exam "; } } } else { salida = "Falta informar algún campo o la información no es válida"; } return(salida); } }
/* TODO: refactorizar y usar pero con guid para simplificar!!! * public static string DeleteExam(int indxAlumno, int indxMateria, DateTime timeStamp, string notaTexto) * { * var salida = ""; * Student dummyStudent = DictionayStudents.ElementAt(indxAlumno).Value; * Subject dummySubject = ListaSubjets[indxMateria]; * * * if ((indxAlumno >= 0) && (indxMateria >= 0) * && !string.IsNullOrWhiteSpace(notaTexto) && double.TryParse(notaTexto , out var score) * && (timeStamp != null)) * { * //Borramos si coinciden todos los campos exactamente * Exam dummyExam = new Exam(dummyStudent, dummySubject, timeStamp, score); * ListaExams.Remove(dummyExam); * //Borramos si coincide con la materia, el profesor y la fecha * //ListaExams.RemoveAll(x => x.Student.Equals(dummyStudent) && x.Subject.Equals(dummySubject) * && x.DateTimeExam.Equals(timeStamp)); * salida = "Examen borrado correctamente"; * } * else * { * salida = "La información introducada no corresponde con ningún examen"; * } * return salida; * }*/ public List <Exam> ListExamsTodos() { var salida = ""; int posicion = 1; List <Exam> TmpListExams; using (AcademyDbContext context = new AcademyDbContext()) { TmpListExams = context.ListaExams.ToList(); } foreach (Exam exam in TmpListExams) { using (AcademyDbContext context = new AcademyDbContext()) { Student student = context.ListaStudents.FirstOrDefault(x => x.Id.Equals(exam.StudentGuid)); Subject subject = context.ListaSubjets.FirstOrDefault(x => x.Id.Equals(exam.SubjectGuid)); salida += $"{posicion}-) El día {exam.DateTimeExam} el alumno {student.Name} en la materia {subject.Name}, ha obtenido una nota de {exam.Score}. {NewLine}"; posicion++; } } Console.WriteLine(salida); return(TmpListExams); }