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); }
/*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); } }
/// <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); } }