diff --git a/Course-Management-System.API/Controllers/AuthenticationController.cs b/Course-Management-System.API/Controllers/AuthenticationController.cs index d1dd961bb1a1cd09b1957da489ba707ee981f8f9..89bb2b66affc90bc1d439735d979082da8bb55cd 100644 --- a/Course-Management-System.API/Controllers/AuthenticationController.cs +++ b/Course-Management-System.API/Controllers/AuthenticationController.cs @@ -36,7 +36,7 @@ public class AuthenticationController : ControllerBase UpdatedAt = DateTime.Now, UpdatedBy =$"{newUser.UserName}" , CreatedBy = $"{newUser.UserName}", - IsActive = true, + IsActive = false, RoleType = newUser.RoleType }; // Store user data in AspNetUsers database table @@ -73,6 +73,7 @@ public class AuthenticationController : ControllerBase // return RedirectToAction(nameof(HomeController.Index), "Home"); var loggedInUser = _userManager.Users.Where(u=> u.UserName == userToLogin.UserName).FirstOrDefault(); loggedInUser.IsActive = true; + await _userManager.UpdateAsync(loggedInUser); return Ok("Logged in successfully"); } @@ -91,6 +92,7 @@ public class AuthenticationController : ControllerBase { var loggedInUser = _userManager.Users.Where(u=> u.IsActive==true).FirstOrDefault(); loggedInUser.IsActive = false; + await _userManager.UpdateAsync(loggedInUser); await _signInManager.SignOutAsync(); return Ok("Logout Successfully"); } diff --git a/Course-Management-System.API/Controllers/StudentController.cs b/Course-Management-System.API/Controllers/StudentController.cs index c11af6efb75b5cdb5d80c98221b515d0d021aca9..da996d084f3b5fbc8e4dfea00571b35654ddbf5c 100644 --- a/Course-Management-System.API/Controllers/StudentController.cs +++ b/Course-Management-System.API/Controllers/StudentController.cs @@ -1,5 +1,6 @@ using Course_Management_System.Services.Interfaces; +using Course_Management_System.Services.RequestDTO; using Course_Management_System.Utility.CustomResponseTypes; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; @@ -25,16 +26,10 @@ public class StudentController : ControllerBase [HttpGet] [Authorize(Roles = "Student")] - public IActionResult ViewCourseProgress(int courseId) + public CourseProgressDTO ViewCourseProgress(int courseId) { - return Ok(_studentServices.ViewCourseProgress(courseId)); + return _studentServices.ViewCourseProgress(courseId); } - [HttpGet] - [Authorize(Roles = "Student")] - public IActionResult Getdata() - { - return Ok("data retrieved successfully"); - } } \ No newline at end of file diff --git a/Course-Management-System.Database/Entities/CourseProgressEntity.cs b/Course-Management-System.Database/Entities/CourseProgressEntity.cs index 509fc7e3e8b259c4a5b4e236d585fa832a15e819..804023869da97286301c7c97a50f4533edf10fae 100644 --- a/Course-Management-System.Database/Entities/CourseProgressEntity.cs +++ b/Course-Management-System.Database/Entities/CourseProgressEntity.cs @@ -6,7 +6,7 @@ namespace Course_Management_System.Database.Entities; public class CourseProgressEntity { public int Id { get; set; } - public int UserId { get; set; } + public string UserId { get; set; } public int CourseId { get; set; } public int ModulesCompleted { get; set; } public StatusOfCourse Status { get; set; } diff --git a/Course-Management-System.Database/Implementations/InstructorRepository.cs b/Course-Management-System.Database/Implementations/InstructorRepository.cs index dda451f609b85afa3509c71573c87876b12aa4ed..30a8613a4d198199e03e5fcc785cf79fc359c319 100644 --- a/Course-Management-System.Database/Implementations/InstructorRepository.cs +++ b/Course-Management-System.Database/Implementations/InstructorRepository.cs @@ -47,9 +47,9 @@ public class InstructorRepository : IInstructorRepository } - public CourseProgressEntity UpdateStudentProgress(int userId, int courseId, CourseProgressEntity courseProgress) + public CourseProgressEntity UpdateStudentProgress(string userId, int courseId, CourseProgressEntity courseProgress) { - var user = _databaseContext.CourseProgress.Where(u => u.UserId == userId).ToList(); + var user = _databaseContext.CourseProgress.Where(u => u.UserId.Equals(userId)).ToList(); if (user == null) { return null; diff --git a/Course-Management-System.Database/Implementations/StudentRepository.cs b/Course-Management-System.Database/Implementations/StudentRepository.cs index a30306805308a630ec8a6ed79c424ace17a9cf87..b267d89614036a25f32b1d372a8b3b64bee94684 100644 --- a/Course-Management-System.Database/Implementations/StudentRepository.cs +++ b/Course-Management-System.Database/Implementations/StudentRepository.cs @@ -21,19 +21,7 @@ public class StudentRepository : IStudentRepository { var user = _userManager.Users.Include(u => u.Courses).Where(u => u.IsActive == true).FirstOrDefault(); - if (courseEntity == null) - return false; - - if (user == null) - { - user.Courses = new List<CourseEntity>(); - user.Courses.Add(courseEntity); - _databaseContext.Users.Add(user); - } - else - { - user.Courses.Add(courseEntity); - } + user.Courses.Add(courseEntity); AddCourseProgress(user, courseEntity); @@ -53,6 +41,7 @@ public class StudentRepository : IStudentRepository CourseProgressEntity courseProgressEntity = new() { CourseId = courseProgress.CourseId, + UserId = user.Id, CreatedAt = DateTime.Now, CreatedBy = user.UserName, UpdatedAt = DateTime.Now, @@ -70,18 +59,15 @@ public class StudentRepository : IStudentRepository public CourseProgressEntity ViewCourseProgress(int courseId) { - var user = _databaseContext.Users.Include(u => u.Courses).Where(u => u.IsActive == true).FirstOrDefault(); - if (user == null) - { - return null; - } + var user = _userManager.Users.Include(u => u.Courses).Where(u => u.IsActive == true).FirstOrDefault(); + var userCourse = _databaseContext.CourseProgress.Where(u => u.UserId.Equals(user.Id)).ToList(); return (userCourse != null) ? userCourse.Where(course => course.CourseId == courseId).FirstOrDefault() : null; } - public List<CourseProgressEntity> ViewStudentProgress(int userId) + public List<CourseProgressEntity> ViewStudentProgress(string userId) { - var userCourses = _databaseContext.CourseProgress.Where(u => u.UserId == userId).ToList(); + var userCourses = _databaseContext.CourseProgress.Where(u => u.UserId.Equals(userId)).ToList(); return (userCourses != null) ? userCourses : null; } } \ No newline at end of file diff --git a/Course-Management-System.Database/Interfaces/IInstructorRepository.cs b/Course-Management-System.Database/Interfaces/IInstructorRepository.cs index 955463c6996dfa06f748f6a8e646646e8648cb51..f03d12506262ee610d56f2ea4b2c456bb30c9b61 100644 --- a/Course-Management-System.Database/Interfaces/IInstructorRepository.cs +++ b/Course-Management-System.Database/Interfaces/IInstructorRepository.cs @@ -9,5 +9,5 @@ public interface IInstructorRepository CourseEntity UpdateCourse(int courseId,CourseEntity updatedCourse); void DeleteCourse(CourseEntity courseEntity); List<UserEntity> FindEnrolledStudents(int courseId); - CourseProgressEntity UpdateStudentProgress(int userId,int courseId,CourseProgressEntity courseProgress); + CourseProgressEntity UpdateStudentProgress(string userId,int courseId,CourseProgressEntity courseProgress); } diff --git a/Course-Management-System.Database/Interfaces/IStudentRepository.cs b/Course-Management-System.Database/Interfaces/IStudentRepository.cs index a6a65ea470db409e4923a56ad071d9c6a2c02f5b..d75e8a903199dcd5ede5e433fac19b9ef87d2e81 100644 --- a/Course-Management-System.Database/Interfaces/IStudentRepository.cs +++ b/Course-Management-System.Database/Interfaces/IStudentRepository.cs @@ -8,5 +8,5 @@ public interface IStudentRepository bool CourseEnrollment(CourseEntity courseEntity); CourseProgressEntity ViewCourseProgress(int courseId); CourseEntity GetCourse(int courseId); - List<CourseProgressEntity> ViewStudentProgress(int userId); + List<CourseProgressEntity> ViewStudentProgress(string userId); } diff --git a/Course-Management-System.Services/Implementations/InstructorService.cs b/Course-Management-System.Services/Implementations/InstructorService.cs index 7395a6372373091a49f1734e1d1f5bfdd1ff9bbd..4784c87480e21e11d5b5650ef5ed79002538cbb5 100644 --- a/Course-Management-System.Services/Implementations/InstructorService.cs +++ b/Course-Management-System.Services/Implementations/InstructorService.cs @@ -51,7 +51,7 @@ public class InstructorService : IInstructorServices return new CustomResponse(false,400,"Course not exists"); } - public (List<CourseProgressDTO>,CustomResponse) GetStudentProgress(int studenId, int courseId) + public (List<CourseProgressDTO>,CustomResponse) GetStudentProgress(string studenId, int courseId) { List<CourseProgressDTO> courseProgress = _mapper.Map<List<CourseProgressDTO>>(_studentRepository.ViewStudentProgress(studenId)); @@ -71,7 +71,7 @@ public class InstructorService : IInstructorServices return (enrolledStudents,new CustomResponse(true,200,"Students retrieved successfully")); } - public (CourseProgressDTO,CustomResponse) UpdateStudentProgress(int userId, int courseId,CourseProgressEntity updatedCourseProgress) + public (CourseProgressDTO,CustomResponse) UpdateStudentProgress(string userId, int courseId,CourseProgressEntity updatedCourseProgress) { CourseProgressDTO courseProgress =_mapper.Map<CourseProgressDTO>(_instructorRepository.UpdateStudentProgress(userId, courseId, updatedCourseProgress)); diff --git a/Course-Management-System.Services/Implementations/StudentServices.cs b/Course-Management-System.Services/Implementations/StudentServices.cs index cd856076a28f91723b998449a9ba4cfdc1cebc48..5224ae4571a44f9c691d40496f27512bf79b83c2 100644 --- a/Course-Management-System.Services/Implementations/StudentServices.cs +++ b/Course-Management-System.Services/Implementations/StudentServices.cs @@ -33,13 +33,14 @@ public class StudentServices : IStudentServices return new CustomResponse(false, 400, "Course Enrollment failed"); } - public (CustomResponse, CourseProgressDTO) ViewCourseProgress(int courseId) + public CourseProgressDTO ViewCourseProgress(int courseId) { CourseProgressDTO progress = _mapper.Map<CourseProgressDTO>(_studentRepository.ViewCourseProgress(courseId)); if (progress == null) { - return (new CustomResponse(false, 404, "Course Progress Not Found"), null); + // return (new CustomResponse(false, 404, "Course Progress Not Found"), null); } - return (new CustomResponse(true, 200, "Course Progress Retrieved Successfully"), progress); + // return (new CustomResponse(true, 200, "Course Progress Retrieved Successfully"), progress); + return progress; } } diff --git a/Course-Management-System.Services/Interfaces/IInstructorServices.cs b/Course-Management-System.Services/Interfaces/IInstructorServices.cs index 5040d2bf5013ccbfdcc745fb03deb4946f64d159..9dae793cc95b294ef9270e1ba34e28853f339091 100644 --- a/Course-Management-System.Services/Interfaces/IInstructorServices.cs +++ b/Course-Management-System.Services/Interfaces/IInstructorServices.cs @@ -12,6 +12,6 @@ public interface IInstructorServices (CustomResponse,CourseDTO) UpdateCourse(int courseId,CourseEntity updatedCourse); CustomResponse DeleteCourse(int courseId); (List<UserDTO>,CustomResponse) FindEnrolledStudents(int courseId); - (List<CourseProgressDTO>,CustomResponse) GetStudentProgress(int studenId, int courseId); - (CourseProgressDTO,CustomResponse) UpdateStudentProgress(int userId, int courseId,CourseProgressEntity courseProgress); + (List<CourseProgressDTO>,CustomResponse) GetStudentProgress(string studenId, int courseId); + (CourseProgressDTO,CustomResponse) UpdateStudentProgress(string userId, int courseId,CourseProgressEntity courseProgress); } diff --git a/Course-Management-System.Services/Interfaces/IStudentServices.cs b/Course-Management-System.Services/Interfaces/IStudentServices.cs index 3fce7953a149e527670224b01acbda72730f9df2..5009502ac912fa1a116a9ba0c611b8eb48791b6e 100644 --- a/Course-Management-System.Services/Interfaces/IStudentServices.cs +++ b/Course-Management-System.Services/Interfaces/IStudentServices.cs @@ -7,5 +7,5 @@ namespace Course_Management_System.Services.Interfaces; public interface IStudentServices { CustomResponse CourseEnrollment(int courseId); - (CustomResponse,CourseProgressDTO) ViewCourseProgress(int courseId); + CourseProgressDTO ViewCourseProgress(int courseId); }