Beispiel #1
0
        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));
            }
        }
Beispiel #2
0
        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));
            }
        }
Beispiel #3
0
        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));
            }
        }
Beispiel #4
0
        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"));
            }
        }
Beispiel #5
0
        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"));
            }
        }