private static IEnumerable <Enrollments> GetEnrollmentsForUserId(int userId, attWebApiContext context) { return(from e in context.Enrollments join c in context.Courses on e.CourseId equals c.Id join ca in context.CoursesAssignments on new { e.CourseId, e.AcademicTermId } equals new { ca.CourseId, ca.AcademicTermId } join u in context.Users on e.StudentId equals u.Id where u.Id == userId select e); }
public static bool ValidateNewAttendanceLog(AttendanceLog log, attWebApiContext context) { if ( log.Id != 0 && context.AttendanceLog.Any(x => x.Id == log.Id) || !context.Users.Any(x => x.Id == log.StudentId) || !context.Courses.Any(x => x.Id == log.CourseId) || !context.AcademicTerms.Any(x => x.Id == log.AcademicTermId) || !context.AttendanceTypes.Any(x => x.Id == log.AttendanceTypeId) ) { return(false); } return(true); }
/// <summary> /// Get specific user's roles /// </summary> /// <param name="userId"></param> /// <param name="context"></param> /// <returns></returns> public static List <int> GetUserRoles(int userId, attWebApiContext context) => (from u in context.Users join ur in context.UserRoles on u.Id equals ur.UserId where u.Id == userId select ur.RoleId).ToList();
public UsersController(attWebApiContext context, IConfiguration configuration) { _context = context; _configuration = configuration; _connString = _configuration.GetSection("ConnectionStrings").GetSection(_configuration.GetSection("ConnectionStringName").Value).Value; }
public TokenController(attWebApiContext context, IConfiguration configuration) { _context = context; _configuration = configuration; }
public static AttendanceRegistrationDataValidationObject ValidateRegistrationData(AttendanceRegistrationData data, attWebApiContext context, IConfiguration configuration) { var valid = true; var error = string.Empty; if (!LogHelper.ValidateNewAttendanceLog(data.Attendance, context)) { valid = false; } else { // Validate location and timestamp if (data.CoursesAssignmentID != null) { // Classroom's coordinates var classRoom = (from c in context.ClassRooms join ca in context.CoursesAssignments on c.Id equals ca.ClassRoomId where ca.Id == data.CoursesAssignmentID select c).SingleOrDefault(); if (classRoom != default(ClassRooms) && classRoom.Longitude != null && classRoom.Latitude != null && classRoom.RangeInMeters != null) { double thisLon = (double)classRoom.Longitude; double thisLat = (double)classRoom.Latitude; var distanceBuffer = (double)classRoom.RangeInMeters; var minutesBuffer = configuration.GetSection("App").GetSection("RegisterAttendance").GetSection("TimeBufferInMinutes").Value; var distance = LogHelper.DistanceInMeters(thisLat, thisLon, data.GeoLat, data.GeoLon); var enrollments = GetEnrollmentsForUserId(data.Attendance.StudentId, context); if (distance > distanceBuffer) { valid = false; error = "Your device is detected too far from the classroom!"; } else if (TimeSpan.FromTicks(DateTime.Now.Ticks - data.SessionStartTimestamp).TotalMinutes > Convert.ToInt32(minutesBuffer)) { valid = false; error = $"It's been over {minutesBuffer} minutes since the beginning of the course"; } else if (!enrollments.Any(e => e.CourseId == data.Attendance.CourseId)) { valid = false; error = $"You are not enrolled to {context.Courses.SingleOrDefault(c=>c.Id == data.Attendance.CourseId).Title}"; } } else { valid = false; } } else { valid = false; } } return(new AttendanceRegistrationDataValidationObject { valid = valid, error = error }); }
public static EnrollmentAttendanceLogs GetAttendanceLogsForEnrollment(int enrollmentId, attWebApiContext context) { var logs = (from l in context.AttendanceLog join e in context.Enrollments on new { l.StudentId, l.CourseId, l.AcademicTermId } equals new { e.StudentId, e.CourseId, e.AcademicTermId } where e.Id == enrollmentId select l).ToList(); var courseAssignment = (from ca in context.CoursesAssignments join c in context.Courses on ca.CourseId equals c.Id join e in context.Enrollments on new { ca.CourseId, ca.AcademicTermId } equals new { e.CourseId, e.AcademicTermId } where e.Id == enrollmentId select new { ca.Id, ca.LecturesMinNum, ca.LecturesTargetNum, CourseTitle = c.Title }).SingleOrDefault(); var enrollmentLogs = new EnrollmentAttendanceLogs { Logs = logs, CourseTitle = courseAssignment.CourseTitle, LecturesMinNum = courseAssignment.LecturesMinNum, LecturesTargetNum = courseAssignment.LecturesTargetNum, LecturesActualNum = context.LecturesLog.Where(l => l.CourseAssignmentId == courseAssignment.Id).Count(), Date = DateTime.Now }; return(enrollmentLogs); }
public static IEnumerable <AttendanceLog> GetDuplicatedLog(AttendanceLog newLog, attWebApiContext context) { return(context.AttendanceLog.Where(a => a.StudentId == newLog.StudentId && a.CourseId == newLog.CourseId && a.AcademicTermId == newLog.AcademicTermId && a.Date == newLog.Date)); }
public AttendanceTypesController(attWebApiContext context) { _context = context; }
public AcademicTermTypesController(attWebApiContext context) { _context = context; }