public async Task Handle_should_enroll_student()
        {
            await using var dbContext = _fixture.BuildDbContext();

            var student = new Student(Guid.NewGuid(), "student", "to enroll");

            dbContext.Students.Add(student);

            var course = new Course(Guid.NewGuid(), "course");

            dbContext.Courses.Add(course);

            await dbContext.SaveChangesAsync();

            //dbContext.Entry(student).State = Microsoft.EntityFrameworkCore.EntityState.Detached;
            //dbContext.Entry(course).State = Microsoft.EntityFrameworkCore.EntityState.Detached;

            var studentsRepo       = new StudentsRepository(dbContext);
            var coursesRepo        = new CoursesRepository(dbContext);
            var messagesRepository = NSubstitute.Substitute.For <IMessagesRepository>();
            var eventSerializer    = NSubstitute.Substitute.For <IEventSerializer>();

            var unitOfWork = new SchoolUnitOfWork(dbContext, coursesRepo, studentsRepo, messagesRepository, eventSerializer);

            var sut = new EnrollHandler(new FakeValidator <Enroll>(), unitOfWork);

            var command = new Enroll(course.Id, student.Id);
            await sut.Handle(command, CancellationToken.None);

            var loadedStudent = await dbContext.Students.FindAsync(student.Id);

            loadedStudent.Courses.Count.Should().Be(1);
        }
Пример #2
0
        public void DeleteCourses(int id)
        {
            CoursesRepository coursesRepository = new CoursesRepository();
            Courses           obj = coursesRepository.PrintOne(id);

            coursesRepository.Delete(obj);
        }
 private void InitRepositories()
 {
     Consts  = new ConstsRepository(Context);
     Courses = new CoursesRepository(Context);
     Posts   = new PostsRepository(Context);
     Users   = new UsersRepository(Context);
 }
Пример #4
0
        public ActionResult CreateAssignment(Assignment assignment, int CourseId)
        {
            CoursesRepository repository = new CoursesRepository();
            Course            course     = db.Courses.Where(c => c.CourseId == CourseId).SingleOrDefault();

            if (!repository.CheckIfAssignmentExists(assignment, CourseId))
            {
                ApplicationUser   teacher     = db.Users.Find(course.Teacher.Id);
                List <Assignment> assignments = course.Assignments.ToList();

                assignment.Filename = Path.GetFileName(assignment.AssignmentFile.FileName);
                string fileName = Path.Combine(Server.MapPath("~/Users/" + teacher.UserName + "/" + course.CourseName), assignment.Filename);
                assignment.AssignmentFile.SaveAs(fileName);
                assignment.Path    = fileName;
                assignment.DueDate = DateTime.Now;
                var           path = new System.IO.DirectoryInfo(AppDomain.CurrentDomain.BaseDirectory + "Users\\" + teacher.UserName + "\\" + course.CourseName + "\\Submits\\" + assignment.AssignmentName);
                DirectoryInfo di   = Directory.CreateDirectory(path.ToString());

                assignment.Course = course;
                db.Assignments.Add(assignment);
                db.SaveChanges();
                return(RedirectToAction("CourseHome", "Courses", course.CourseId));
            }
            else
            {
                TempData["Error"] = "Assignment already exists! Try again";
                return(RedirectToAction("CourseHome", "Courses", course));
            }
        }
        public async Task <ActionResult> Register(RegisterViewModel model)
        {
            CoursesRepository c = new CoursesRepository();

            if (ModelState.IsValid)
            {
                var user = new ApplicationUser {
                    UserName = model.Email, Email = model.Email
                };
                var result = await UserManager.CreateAsync(user, model.Password);

                if (result.Succeeded)
                {
                    await SignInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false);

                    c.UpdateRole(model.Role, model.Email);
                    // For more information on how to enable account confirmation and password reset please visit https://go.microsoft.com/fwlink/?LinkID=320771
                    // Send an email with this link
                    // string code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id);
                    // var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme);
                    // await UserManager.SendEmailAsync(user.Id, "Confirm your account", "Please confirm your account by clicking <a href=\"" + callbackUrl + "\">here</a>");

                    return(RedirectToAction("Index", "Home"));
                }
                AddErrors(result);
            }

            // If we got this far, something failed, redisplay form
            return(View(model));
        }
Пример #6
0
        public List <Courses> GetAllCourses()
        {
            CoursesRepository courseRepository = new CoursesRepository();
            var course = courseRepository.PrintAll();

            return(course);
        }
Пример #7
0
 public CommentsController()
 {
     commentsRepo     = new CommentsRepository(db);
     projectTasksRepo = new ProjectTasksRepository(db);
     usersRepo        = new UsersRepository(db);
     coursesRepo      = new CoursesRepository(db);
 }
Пример #8
0
        public DetailsModel(IConfiguration configuration)
        {
            this.configuration = configuration;
            var connectionString = configuration.GetConnectionString("DefaultConnection");

            repository = new CoursesRepository(connectionString);
        }
Пример #9
0
        public ActionResult Modules(int?id)
        {
            CoursesRepository Repository = new CoursesRepository();

            if (Request.IsAuthenticated)
            {
                if (id == null)
                {
                    return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
                }
                int            Id   = (int)id;
                List <Modules> data = Repository.GetCourseModules_Single_User(@User.Identity.GetUserName(), Id);

                foreach (var a in data)
                {
                    var path = @"/Courses" + "/" + a.CourseName + "/" + "Modules/" + a.ModuleName;

                    //var task = Task.
                    //    ((Func<Task>)HomeController.Run(8));
                    //task.Wait();

                    //Task.Run(Run(8));
                }

                ViewBag.CourseId = id;
                return(View());
            }
            else
            {
                return(RedirectToAction("Login", "Account"));
            }
        }
Пример #10
0
        public async Task CommitAsync_should_create_messages_from_domain_events()
        {
            await using var dbContext = _fixture.BuildDbContext();

            var studentsRepo       = new StudentsRepository(dbContext);
            var coursesRepo        = new CoursesRepository(dbContext);
            var messagesRepository = NSubstitute.Substitute.For <IMessagesRepository>();
            var eventSerializer    = NSubstitute.Substitute.For <IEventSerializer>();

            var sut = new SchoolUnitOfWork(dbContext, coursesRepo, studentsRepo, messagesRepository, eventSerializer);

            var course = new Course(Guid.NewGuid(), "course");
            await sut.CoursesRepository.CreateAsync(course, CancellationToken.None);

            var student = new Student(Guid.NewGuid(), "firstname", "lastname");

            student.Enroll(course);
            student.Complete(course);

            await sut.StudentsRepository.CreateAsync(student, CancellationToken.None);

            await sut.CommitAsync(CancellationToken.None);

            var messages = await dbContext.Messages.ToListAsync();

            messages.Should().HaveCount(2);
        }
Пример #11
0
        // POST: Courses/Delete/5
        //[HttpPost, ActionName("Delete")]
        //[ValidateAntiForgeryToken]
        public ActionResult Delete(int id)
        {
            Course            course     = db.Courses.Find(id);
            ApplicationUser   teacher    = course.Teacher;
            CoursesRepository repository = new CoursesRepository();

            if (course == null)
            {
                return(HttpNotFound());
            }
            try
            {
                var path = teacher.Path + "\\" + course.CourseName;
                Directory.Delete(path.ToString(), true);
                repository.RemoveAssignments(course);
                repository.RemoveLectures(course);
                repository.DeleteCoursesEnrollments(course);
                db.Courses.Remove(course);
                db.SaveChanges();
            }
            catch (Exception e)
            {
                throw e;
            }
            return(RedirectToAction("Index"));
        }
Пример #12
0
        public ActionResult GetCourses(string Category, int?StudentID)
        {
            if (string.IsNullOrEmpty(Category))
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            CoursesRepository   coursesRepository = new CoursesRepository();
            CourseRuleViewModel Courses           = new CourseRuleViewModel();

            if (StudentID == null)
            {
                //Create Request
                //get Courses list
                Courses = coursesRepository.GetCourseByCategory(Category);
            }
            else
            {
                Courses = coursesRepository.GetCourseByCategory(Category, Convert.ToInt32(StudentID));
            }

            if (Request.IsAjaxRequest())
            {
                return(PartialView("/Views/Students/_PartialCourseList.cshtml", Courses));
            }
            else
            {
                return(Json(Courses, JsonRequestBehavior.AllowGet));
            }
        }
Пример #13
0
        public ActionResult Create(Lecture lecture, int CourseId)
        {
            CoursesRepository repository = new CoursesRepository();
            Course            course     = db.Courses.Where(c => c.CourseId == CourseId).SingleOrDefault();

            if (!repository.CheckIfLectureExists(lecture, CourseId))
            {
                ApplicationUser teacher  = db.Users.Find(course.Teacher.Id);
                List <Lecture>  lectures = course.Lectures.ToList();
                try
                {
                    lecture.Filename = Path.GetFileName(lecture.LectureFile.FileName);
                    string fileName = Path.Combine(Server.MapPath("~/Users/" + teacher.UserName + "/" + course.CourseName + "/Lectures/"), lecture.Filename);
                    lecture.LectureFile.SaveAs(fileName);

                    lecture.Path   = fileName;
                    lecture.Course = course;
                    db.Lectures.Add(lecture);
                    db.SaveChanges();
                    return(RedirectToAction("CourseHome", "Courses", course.CourseId));
                }
                catch (Exception e)
                {
                    throw e;
                }
            }
            else
            {
                TempData["Errormsg"] = "Lecture already exists! Try again";
                return(RedirectToAction("CourseHome", "Courses", course));
            }
        }
        public async Task <ActionResult <Course> > GetCourseWithID(int courseID)
        {
            if (Validation.IsAnyInputObjectDataNotSpecified(new List <object> {
                courseID
            }))
            {
                return(BadRequest("Error: course ID must be specified (with non-zero value)"));
            }

            using (var connection = new SqlConnection(Configuration.GetConnectionString("DefaultConnection")))
            {
                try
                {
                    connection.Open();

                    var course = await CoursesRepository.GetDefiniteCourse(connection, courseID);

                    if (course == null)
                    {
                        return(NotFound("There isn't course with such ID in database"));
                    }

                    return(course);
                }
                catch (Exception ex)
                {
                    return(BadRequest(ex.Message));
                }
            }
        }
        public async Task <IActionResult> DeleteCourseWithID(int courseID)
        {
            if (Validation.IsAnyInputObjectDataNotSpecified(new List <object> {
                courseID
            }))
            {
                return(BadRequest("Error: course ID must be specified (with non-zero value)"));
            }

            using (var connection = new SqlConnection(Configuration.GetConnectionString("DefaultConnection")))
            {
                try
                {
                    connection.Open();

                    var numberOfAffectedRows = await CoursesRepository.DeleteCourseAsync(connection, courseID);

                    if (numberOfAffectedRows == 0)
                    {
                        return(NotFound("Course with such id isn't found in database"));
                    }
                }
                catch (Exception ex)
                {
                    return(BadRequest(ex.Message));
                }
            }

            return(NoContent());
        }
Пример #16
0
 public HomeController()
 {
     projectsRepository    = new ProjectsRepository(db);
     coursesRepository     = new CoursesRepository(db);
     usersRepository       = new UsersRepository(db);
     submissionsRepository = new SubmissionsRepository(db);
 }
Пример #17
0
 public CoursesServiceImpl(TransactionManager transactionManager, CoursesRepository productRepo, CoursesMaker productMaker, FacultyRepository facultyRepository, IHostingEnvironment hostingEnvironment)
 {
     _facultyRepository  = facultyRepository;
     _transactionManager = transactionManager;
     _productRepo        = productRepo;
     _productMaker       = productMaker;
     _hostingEnvironment = hostingEnvironment;
 }
Пример #18
0
 public DataAccess()
 {
     _context               = new UniversityDbContext();
     _coursesRepository     = new CoursesRepository(_context);
     _departmentsRepository = new DepartmentsRepository(_context);
     _studentsRepository    = new StudentsRepository(_context);
     _enrollemntsRepository = new EnrollementsRepository(_context);
 }
Пример #19
0
 public ProjectTasksController()
 {
     projectTasksRepository = new ProjectTasksRepository(db);
     coursesRepository      = new CoursesRepository(db);
     projectsRepository     = new ProjectsRepository(db);
     submissionsRepository  = new SubmissionsRepository(db);
     userCoursesRepostiory  = new UserCoursesRepository(db);
 }
        public override void SetUp()
        {
            base.SetUp();

            TeachersRepository.Add(Arg.Any <Teacher>()).Returns(new VoidResult());
            CoursesRepository.Add(Arg.Any <Course>()).Returns(new VoidResult())
            .AndDoes(ci => _course = ci.ArgAt <Course>(0));
        }
        public override void SetUp()
        {
            base.SetUp();

            _course                  = CoursesRepository.FoundEntity();
            CourseDetails.Id         = _course.Id;
            CourseDetails.Teacher.Id = Guid.Empty;
        }
        public void ListAll_ListIsCalled()
        {
            // Arrange
            // Act
            var result = Service.ListAll();

            // Assert
            CoursesRepository.Received().List();
        }
Пример #23
0
 public UsersController()
 {
     store                 = new UserStore <ApplicationUser>(db);
     userManager           = new UserManager <ApplicationUser>(store);
     usersRepository       = new UsersRepository(db);
     userCoursesRepository = new UserCoursesRepository(db);
     coursesRepository     = new CoursesRepository(db);
     submissionsRepository = new SubmissionsRepository(db);
 }
Пример #24
0
        public async Task <ActionResult> Index(string order = "Ascending Course", string theme = "All Themes")
        {
            ViewBag.order = order;
            ViewBag.theme = theme;
            IEnumerable <Course> courses = null;

            using (_courseRepository = new CoursesRepository())
            {
                courses = await _courseRepository.GetListWithEnrollmentsAndThemesAsync();

                if (theme != "All Themes")
                {
                    courses = from x in courses where x.CourseTheme.ThemeName == theme select x;
                }
                switch (order)
                {
                case "Ascending Course":
                {
                    courses = from x in courses orderby x.Title select x;
                    break;
                }

                case "Descending Course":
                {
                    courses = from x in courses orderby x.Title descending select x;
                    break;
                }

                case "Ascending Students":
                {
                    courses = from x in courses orderby x.Enrollments.Count select x;
                    break;
                }

                case "Descending Students":
                {
                    courses = from x in courses orderby x.Enrollments.Count descending select x;
                    break;
                }

                case "Ascending Monthes":
                {
                    courses = from x in courses orderby x.TotalMonths() select x;

                    break;
                }

                case "Descending Monthes":
                {
                    courses = from x in courses orderby x.TotalMonths() descending select x;

                    break;
                }
                }
            }
            return(View(courses.ToList()));;
        }
 public CoursesController(CoursesRepository productRepo, CoursesService productService, IMapper mapper, FileHelper fileHelper, PaginatedMetaService paginatedMetaService, FacultyRepository facultyRepository)
 {
     _productRepo          = productRepo;
     _productService       = productService;
     _mapper               = mapper;
     _fileHelper           = fileHelper;
     _paginatedMetaService = paginatedMetaService;
     _facultyRepository    = facultyRepository;
 }
Пример #26
0
        public void AddCourses(Courses entity)
        {
            CoursesRepository     courseRepository      = new CoursesRepository();
            DepartmentsRepository departmentsRepository = new DepartmentsRepository();
            Departments           departments           = departmentsRepository.PrintOne(entity.DepartmentID);

            entity.Departments = departments;
            courseRepository.Add(entity);
        }
Пример #27
0
        public CoursesController()
        {

            var coursesContext = new CoursesContext();
            var coursesUnitOfWork = new CoursesUnitOfWork(coursesContext);
            var coursesRespository = new CoursesRepository(coursesUnitOfWork);

            this._coursesAppService = new CoursesAppService(coursesRespository);

        }
Пример #28
0
        // DI DbContext into Unit Of Work
        public UnitOfWork(ApplicationDBContext _myAppDbContext)
        {
            myAppDbContext = _myAppDbContext;

            /* Initialise all our repositories
             * Declare Instance of Repositories implementing the Repositories interface */
            Student = new StudentRepository(myAppDbContext);
            Teacher = new TeachersRepository(myAppDbContext);
            Course  = new  CoursesRepository(myAppDbContext);
        }
Пример #29
0
        public IHttpActionResult Delete(Course id)
        {
            bool deleted = new CoursesRepository().Delete(id.ID);

            if (!deleted)
            {
                return(BadRequest("Course couldn't be Deleted"));
            }
            return(Ok());
        }
        private  void CoursesComboBox_OnSelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            ICoursesRepository coursesService =
               new CoursesRepository(AppConfig.ServiceUrl, _accountService);

            Course selectedCourse = coursesService.Get((int)CoursesComboBox.SelectedValue);

            WindowCreator.GetCurseMenuPanel(_accountService, selectedCourse);
            InitCourseTreeView(selectedCourse);
        }
        private void InitCourses()
        {
            ICoursesRepository coursesService = new CoursesRepository(AppConfig.ServiceUrl, _accountService);

            var courses = coursesService.GetList();

            CoursesComboBox.ItemsSource = courses.data;
            CoursesComboBox.DisplayMemberPath = "name";
            CoursesComboBox.SelectedValuePath = "id";
        }
        public async Task <IActionResult> Post([FromBody] Dictionary <string, string> course)
        {
            if (Validation.IsAnyInputObjectDataNotSpecified(new List <object> {
                course.ContainsKey("Name") ? course["Name"] : null,
                course.ContainsKey("StartDate") ? course["StartDate"] : null, course.ContainsKey("EndDate") ? course["EndDate"] : null,
                course.ContainsKey("PassingScore") ? course["PassingScore"] : null
            }))
            {
                return(BadRequest("Error: all course input data must be specified"));
            }

            course["Name"]         = course["Name"].Trim();
            course["StartDate"]    = course["StartDate"].Trim();
            course["EndDate"]      = course["EndDate"].Trim();
            course["PassingScore"] = course["PassingScore"].Trim();

            if (!Validation.ValidateDateTimeAndGetParsed(course["StartDate"], out DateTime resultStartDate))
            {
                return(BadRequest("Error: start date is incorrect"));
            }

            if (!Validation.ValidateDateTimeAndGetParsed(course["EndDate"], out DateTime resultEndDate))
            {
                return(BadRequest("Error: end date is incorrect"));
            }

            if (!Validation.ValidateIntAndGetParsed(course["PassingScore"], out int resultPassingScore) || resultPassingScore <= 0)
            {
                return(BadRequest("Error: passing score is incorrect"));
            }

            var resultCourse = new Course
            {
                Name         = course["Name"],
                StartDate    = resultStartDate,
                EndDate      = resultEndDate,
                PassingScore = resultPassingScore
            };

            using (var connection = new SqlConnection(Configuration.GetConnectionString("DefaultConnection")))
            {
                try
                {
                    connection.Open();

                    await CoursesRepository.CreateCourseAsync(connection, resultCourse);
                }
                catch (Exception ex)
                {
                    return(BadRequest(ex.Message));
                }
            }

            return(Ok(resultCourse));
        }
        public void Delete_CourseDeleted_Saved()
        {
            // Arrange
            var course = CoursesRepository.CanDelete();

            // Act
            var result = Service.Delete(course.Id);

            // Assert
            UnitOfWork.Received().SaveChanges();
        }