public Result SaveUser(User user) { try { using (var context = new AttendanceDataContext()) { var dalUser = context.Users.FirstOrDefault(c => c.UserName == user.UserName); if (dalUser == null) { throw new InvalidOperationException("user is null"); } dalUser.FirstName = user.FirstName; dalUser.LastName = user.LastName; dalUser.EmailAddress = user.EmailAddress; context.SubmitChanges(); return(new Result()); } } catch (Exception) { return(new Result(HttpStatusCode.InternalServerError)); } }
public Result SaveDisputeResponse(int courseAttendanceId, bool disputeAccepted = false) { try { var userReult = GetUserByUserName(HttpContext.Current.User.Identity.Name); if (userReult.HasError) { return(userReult); } using (var context = new AttendanceDataContext()) { var courseAttendant = context.CourseAttendances.FirstOrDefault(c => c.Id == courseAttendanceId); if (courseAttendant == null) { throw new InvalidOperationException("course attendant is null"); } courseAttendant.Status = disputeAccepted ? AttendanceStatus.Present.ToString() : AttendanceStatus.Absent.ToString(); courseAttendant.DisputeRespondedBy = userReult.Value.Id; context.SubmitChanges(); return(new Result()); } } catch (Exception) { return(new Result(HttpStatusCode.InternalServerError)); } }
public Result UpdateCourseDetals(CoursesDetailsViewModel model) { try { using (var context = new AttendanceDataContext()) { var course = context.Courses.FirstOrDefault(c => c.Id == model.CourseId); if (course == null) { throw new InvalidOperationException("Course is not found"); } course.CheckInStartTime = model.BeforeCheckIn; course.CheckInEndTime = model.AfterCheckIn; foreach (var student in model.Students) { var currentUserCourse = context.UserCourses.FirstOrDefault( c => c.CourseId == model.CourseId && c.UserId == student.Id); if (student.Selected) { if (currentUserCourse == null) { context.UserCourses.InsertOnSubmit(new UserCourse { CourseId = model.CourseId, UserId = student.Id, Created = DateTime.Now }); } } else { if (currentUserCourse != null) { context.UserCourses.DeleteOnSubmit(currentUserCourse); } } } context.SubmitChanges(); return(new Result()); } } catch (Exception) { return(new Result(HttpStatusCode.InternalServerError)); } }
public Result DisputeCourse(DisputeCourseRequest request) { try { using (var context = new AttendanceDataContext()) { var courseAttendance = context.CourseAttendances.FirstOrDefault(c => c.Id == request.CourseAttendanceId); if (courseAttendance == null) { return(new Result(HttpStatusCode.InternalServerError, "Unable to find the course attended")); } courseAttendance.Disputed = true; courseAttendance.DisputedReason = request.DisputeReason; courseAttendance.DisputedDate = DateTime.Now; //send notification email var professorDetails = from uc in context.UserCourses join u in context.Users on uc.UserId equals u.Id where uc.CourseId == courseAttendance.CourseId && u.RoleId == 2 select new DisputeNotification { DisplayName = u.FirstName, ToAddress = u.EmailAddress, CourseName = courseAttendance.Course.CourseName }; var courseProfessorDetails = professorDetails.FirstOrDefault(); if (courseProfessorDetails != null) { Email.SendEmail(courseProfessorDetails.ToAddress, courseProfessorDetails.DisplayName, $"Dispute-{courseProfessorDetails.CourseName}", "Student disputed the course"); } context.SubmitChanges(); return(new Result()); } } catch (Exception) { return(new Result(HttpStatusCode.InternalServerError, "Unable to update dispute reason")); } }
public Result InsertCourseAttendance(CourseAttendance model) { try { using (var context = new AttendanceDataContext()) { context.CourseAttendances.InsertOnSubmit(model); context.SubmitChanges(); } return(new Result()); } catch (Exception) { return(new Result(HttpStatusCode.InternalServerError, "Unable to check in")); } }