Exemplo n.º 1
0
        public HttpResponseMessage DisputeCourse([FromBody] DisputeCourseRequest request)
        {
            var result = _dalHelper.DisputeCourse(request);

            return(result.HasError
                ? Request.CreateResponse(HttpStatusCode.InternalServerError, result)
                : Request.CreateResponse(HttpStatusCode.OK, new Result()));
        }
Exemplo n.º 2
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"));
            }
        }
Exemplo n.º 3
0
        public async Task <Result> DisputeCourse(int courseAttendanceId, string reason)
        {
            using (var client = new HttpClient())
            {
                var model = new DisputeCourseRequest
                {
                    DisputeReason      = reason,
                    CourseAttendanceId = courseAttendanceId
                };

                var content = new StringContent(JsonConvert.SerializeObject(model), Encoding.UTF8, "application/json");

                var result = await client.PostAsync($"{AttendancePortalUrl}/api/attendance/DisputeCourse", content);

                var jsonString = result.Content.ReadAsStringAsync();
                jsonString.Wait();

                return(JsonConvert.DeserializeObject <Result>(jsonString.Result));
            }
        }