private User GetUserFromRow(MySqlDataReader reader) { User user = new User(); UserAccountType accountType = (UserAccountType)Enum.ToObject(typeof(UserAccountType), reader.GetInt32(1)); if (accountType is UserAccountType.Student) { Student student = new Student { StudyYear = reader.GetInt32(6) }; int?facultyId = !reader.IsDBNull(7) ? (int?)reader.GetInt32(7) : null; int?programId = !reader.IsDBNull(8) ? (int?)reader.GetInt32(8) : null; int?specializationId = !reader.IsDBNull(9) ? (int?)reader.GetInt32(9) : null; if (facultyId != null) { Faculty faculty = ((App)App.Current).faculties.GetFacultyById((int)facultyId); if (programId != null) { StudyProgram program = faculty.StudyPrograms[(int)programId]; student.StudyProgram = program; if (specializationId != null) { StudyProgramSpecialization specialization = program.StudyProgramSpecializations[(int)specializationId]; student.StudyProgramSpecialization = specialization; } } } user = student; } else if (accountType is UserAccountType.FacultyMember) { FacultyMember facultyMember = new FacultyMember { Faculty = ((App)App.Current).faculties.GetFacultyById(reader.GetInt32(10)), AcademicRank = (AcademicRank)Enum.ToObject(typeof(AcademicRank), reader.GetInt32(11)), StudyField = ((App)App.Current).faculties.GetStudyFieldById(reader.GetInt32(12)) }; user = facultyMember; } user.UserId = reader.GetInt32(0); user.FirstName = reader.GetString(2); user.LastName = reader.GetString(3); user.PhoneNumber = !reader.IsDBNull(4) ? reader.GetString(4) : null; user.PhoneFormat = !reader.IsDBNull(4) ? reader.GetString(5) : null; return(user); }
public int GetStudyProgramSpecializationId(StudyProgram program, StudyProgramSpecialization specialization) { foreach (var item in program.StudyProgramSpecializations) { if (item.Value.Name == specialization.Name) { return(item.Key); } } return(-1); }