public void TestAddCourse_Success()
        {
            RegisterCourseViewModel m = new RegisterCourseViewModel()
            {
                Name        = "New Course Name",
                Description = "New Course Description"
            };

            Course c = _courseService.AddCourse(m, 5);

            // Tests that the newly added RegisterCourseViewModel name is correctly returned after adding
            Assert.Equal("New Course Name", c.Name);
        }
        public async Task <ActionResponse> CreateCourse(int semesterId, Course course, List <DBFile> dBFiles, List <IFormFile> formFiles = null)
        {
            var userId = User.FindFirstValue(ClaimTypes.NameIdentifier);
            var access = await _userservice.AuthorizeSemester(userId, semesterId);

            if (access)
            {
                var semester = await _courseService.GetSemesterAsync(semesterId);

                if (semester == null)
                {
                    return(new ActionResponse(false, "Invalid User"));
                }
                else
                {
                    var res = await _courseService.AddCourse(course, semesterId, semester.Batch.Id);

                    return(res);
                }
            }
            else
            {
                return(new ActionResponse(false, "You may not have access to use this API"));
            }
        }
        public void Post_if_model_state_invalid_then_dont_add_course_and_return_error_view()
        {
            #region Arrange
            //Faking ModelState.IsValid = false
            CourseController.ModelState.Add("testError", new ModelState());
            CourseController.ModelState.AddModelError("testError", "test");

            using (Mock.Record())
            {
                Expect.Call(CourseService.AddCourse(Course)).Repeat.Never();
            }
            #endregion

            #region Act
            ViewResult view;
            using (Mock.Playback())
            {
                view = (ViewResult)CourseController.Create(Course);
            }

            #endregion

            #region Assert
            Assert.That(view.ViewName, Is.EqualTo("Error"));
            Assert.That(view.ViewBag.Error, Is.EqualTo(elearn.Common.ErrorMessages.Course.ModelUpdateError));
            #endregion
        }
        public void CreateCourseShouldAddNewCourseIfAllParametersAreCorrect()
        {
            var contextOptions = new DbContextOptionsBuilder <AcademyContext>()
                                 .UseInMemoryDatabase(databaseName: "CreateCourseShouldAddNewCourseIfAllParametersAreCorrect")
                                 .Options;

            //Setup roles for the in-memory database
            var adminRole = new Role {
                Id = 1, Name = "Administrator"
            };
            var teacherRole = new Role {
                Id = 2, Name = "Teacher"
            };
            var studentRole = new Role {
                Id = 3, Name = "Student"
            };

            var teacherName = "pesho007";
            var courseName  = "SoftSkills";

            var user = new User
            {
                UserName     = teacherName,
                Deleted      = false,
                FullName     = "Gosho Peshov",
                Password     = "******",
                RoleId       = 2,
                RegisteredOn = DateTime.Now,
                Id           = 1,
                Role         = studentRole
            };


            var userServiceStub = new Mock <IUserService>();

            userServiceStub.Setup(us => us.RetrieveUser(teacherName)).Returns(user);

            using (var context = new AcademyContext(contextOptions))
            {
                var dataHandler = new DataHandler(context);

                dataHandler.Roles.Add(adminRole);
                dataHandler.Roles.Add(teacherRole);
                dataHandler.Roles.Add(studentRole);
                dataHandler.Users.Add(user);

                dataHandler.SaveChanges();

                var sut = new CourseService(dataHandler, userServiceStub.Object);
                sut.AddCourse(teacherName, DateTime.MinValue, DateTime.MaxValue, courseName);
            }

            using (var assertContext = new AcademyContext(contextOptions))
            {
                var dataHandler = new DataHandler(assertContext);

                Assert.IsTrue(dataHandler.Courses.All().Count() == 1);
                Assert.IsTrue(dataHandler.Courses.All().Any(co => co.Name == courseName));
            }
        }
Exemple #5
0
 private void AddCourse()
 {
     CourseService.AddCourse(new Course()
     {
         Name = $"Name-{random.Next()}"
     });
 }
Exemple #6
0
 private void AddProc()
 {
     if (SelectedQualification == null)
     {
         MessageBox.Show("Qualification developed by course cannot be null");
         return;
     }
     if (MessageBox.Show("Are you sure?", "", MessageBoxButton.YesNo) == MessageBoxResult.Yes)
     {
         Course = CourseService.AddCourse(Course);
         var prerequisites = AddPrerequisites();
         if (prerequisites.Any(d => d.QualificationId == SelectedQualification.Qualification.Id))
         {
             MessageBox.Show(
                 "Qualification developed by course cannot be the same with the/one of the Prerequisite Qualification/s");
             return;
         }
         AddQualificationsDeveloped();
         Messenger.Default.Send(new NotificationMessage(nameof(SessionsView_ViewModel)));
         Messenger.Default.Send(new LoadSessionsViewMessage()
         {
             Course = Course
         });
     }
 }
Exemple #7
0
        public async Task <IActionResult> OnPostAddCourse()
        {
            if (ModelState.IsValid)
            {
                AddCourse.UserId = int.Parse(User.FindFirstValue(ClaimTypes.NameIdentifier));
                await _courseService.AddCourse(AddCourse);

                return(LocalRedirect("/"));
            }
            return(Page());
        }
        public void CreateCourseShouldThrowIfInvalidName()
        {
            var coursname = "p";

            var stubRepository  = new Mock <IDataHandler>();
            var stubUserService = new Mock <IUserService>();

            var sut = new CourseService(stubRepository.Object, stubUserService.Object);

            Assert.ThrowsException <ArgumentOutOfRangeException>(() =>
                                                                 sut.AddCourse("Pesho", DateTime.MinValue, DateTime.MaxValue, coursname));
        }
        public void AddCourse()
        {
            ICourseService courseService = new CourseService(new PlugUnitOfWork(new PlugDbContextFactory()));

            var outputResult = courseService.AddCourse(new Plug.Models.Input <Plug.Models.CourseModel>
            {
                OperationBy = "UnitTest",
                Arguments   = new Plug.Models.CourseModel
                {
                    Subject     = "CourseTest",
                    Description = "Test",
                    Modules     = new System.Collections.Generic.List <Plug.Models.ModuleModel>
                    {
                        new Plug.Models.TextModuleModel
                        {
                            Title       = "First",
                            Description = "First",
                            CanSkip     = true
                        },
                        new Plug.Models.VideoModuleModel
                        {
                            Title    = "Second",
                            CanSkip  = false,
                            Uri      = "Uri",
                            Duration = new System.TimeSpan(1, 0, 0)
                        },
                        new Plug.Models.QuestionModuleModel
                        {
                            Title   = "Third",
                            CanSkip = false,
                            Text    = "Third ?",
                            Choices = new System.Collections.Generic.List <Plug.Models.ChoiceModel>
                            {
                                new Plug.Models.ChoiceModel {
                                    Option = "op1", IsAnswer = false
                                },
                                new Plug.Models.ChoiceModel {
                                    Option = "op2", IsAnswer = false
                                },
                                new Plug.Models.ChoiceModel {
                                    Option = "op3", IsAnswer = false
                                },
                                new Plug.Models.ChoiceModel {
                                    Option = "op4", IsAnswer = true
                                },
                            }
                        }
                    }
                }
            });

            Assert.IsTrue(outputResult.Result.Sucess);
        }
Exemple #10
0
        public void Add()
        {
            var course = new DataLayer.EfClasses.Course
            {
                CourseName        = Name,
                CourseDescription = Description,
                CourseHours       = Hours
            };

            _courseService.AddCourse(course);

            AssociatedCourse = new CourseViewModel(course);
        }
Exemple #11
0
        public async Task <IActionResult> AddCourse([FromBody] CourseDTO _CourseDTO)
        {
            try
            {
                var course = await _courseService.AddCourse(_CourseDTO);

                return(Ok("Course Added"));
            }
            catch (Exception e)
            {
                return(BadRequest(e.Message));
            }
        }
        public void CreateCourseShouldThrowIfInvalidUserPermissions()
        {
            var contextOptions = new DbContextOptionsBuilder <AcademyContext>()
                                 .UseInMemoryDatabase(databaseName: "CreateCourseShouldThrowIfInvalidUserPermissions")
                                 .Options;

            //Setup roles for the in-memory database
            var adminRole = new Role {
                Id = 1, Name = "Administrator"
            };
            var teacherRole = new Role {
                Id = 2, Name = "Teacher"
            };
            var studentRole = new Role {
                Id = 3, Name = "Student"
            };
            var teacherName = "pesho007";

            var user = new User
            {
                UserName     = teacherName,
                Deleted      = false,
                FullName     = "Gosho Peshov",
                Password     = "******",
                RoleId       = 3,
                RegisteredOn = DateTime.Now,
                Id           = 1,
                Role         = studentRole
            };

            var userServiceStub = new Mock <IUserService>();

            userServiceStub.Setup(us => us.RetrieveUser(teacherName)).Returns(user);

            using (var context = new AcademyContext(contextOptions))
            {
                var dataHandler = new DataHandler(context);

                dataHandler.Roles.Add(adminRole);
                dataHandler.Roles.Add(teacherRole);
                dataHandler.Roles.Add(studentRole);
                dataHandler.Users.Add(user);

                dataHandler.SaveChanges();

                var sut = new CourseService(dataHandler, userServiceStub.Object);

                Assert.ThrowsException <ArgumentOutOfRangeException>(() =>
                                                                     sut.AddCourse(teacherName, DateTime.MinValue, DateTime.MaxValue, "coursname"));
            }
        }
        public IActionResult AddCourse()
        {
            string body = string.Empty;

            using (StreamReader rd = new StreamReader(Request.Body))
            {
                body = rd.ReadToEnd();
            }
            Course course = JsonConvert.DeserializeObject <Course>(body);

            service.AddCourse(course);

            return(new OkResult());
        }
Exemple #14
0
        public ActionResult CreateDepartmentCourse(DepartmentCourseViewModel model)
        {
            Department dept = new Department();

            dept.Name   = model.DepartmentName;
            dept.Budget = model.DepartmentBudget;
            departmentService.AddDepartment(dept);

            CourseService courseService = new CourseService();
            Course        course        = new Course();

            course.Title = model.CourseName;
            courseService.AddCourse(course);
            return(View());
        }
        public ResponseData AddCourse(AddCourseRequest model)
        {
            try
            {
                var coursService = new CourseService();
                coursService.AddCourse(model);
                return(new ResponseData());
            }
            catch (ValidationException ex)
            {
                ResponseData res = new ResponseData();
                res.SetError(ex.ErrKey);

                return(res);
            }
        }
Exemple #16
0
        public ActionResult Create(Course course)
        {
            try
            {
                course.DepartmentId = 3;
                course.UpdatedDate  = DateTime.Now;

                _courseService.AddCourse(course);

                return(RedirectToAction("Index"));
            }
            catch (Exception)
            {
                return(View());
            }
        }
Exemple #17
0
        public async Task AddCourseTest(CourseDto courseDto, Course expected)
        {
            // Arrange
            Mock <ICrudRepository <Course> > repositoryMock = new();
            var loggerMock = new Mock <ILogger <CourseService> >();
            var mapperMock = new Mock <IMapper>();

            mapperMock.Setup(mapper => mapper.Map <Course>(courseDto)).Returns(expected);
            var service = new CourseService(repositoryMock.Object, mapperMock.Object, loggerMock.Object);

            // Act
            int id = await service.AddCourse(courseDto);

            // Assert
            Assert.That(id, Is.EqualTo(expected.Id));
            repositoryMock.Verify(repository => repository.SaveAsync(expected, It.IsAny <CancellationToken>()));
            repositoryMock.VerifyNoOtherCalls();
        }
        public void CallSaverSaveChangesMethodOnce_WhenInvokedWithValidParameters()
        {
            //Arrange
            var coursesMock        = new Mock <IRepository <Course> >();
            var studentCoursesMock = new Mock <IRepository <StudentCourse> >();
            var mapperMock         = new Mock <IMappingProvider>();
            var saverMock          = new Mock <ISaver>();

            var courseDto = new CourseDto()
            {
                Id           = new Guid("12367a78-faf1-40c9-abcd-0c3131a03312"),
                Name         = "DSA",
                Credits      = 5,
                LecturerName = "Sasho Dikov"
            };

            var course = new Course()
            {
                Id           = new Guid("12367a78-faf1-40c9-abcd-0c3131a03312"),
                Name         = "DSA",
                Credits      = 5,
                LecturerName = "Sasho Dikov"
            };

            mapperMock
            .Setup(x => x.MapTo <Course>(courseDto))
            .Returns(course);

            var courseService = new CourseService(
                coursesMock.Object,
                studentCoursesMock.Object,
                mapperMock.Object,
                saverMock.Object);

            //Act
            courseService.AddCourse(courseDto);

            //Assert
            saverMock.Verify(x => x.SaveChanges(), Times.Once);
        }
        private void AddButton_Click(object sender, RoutedEventArgs e)
        {
            if (NameTextBox.Text == "")
            {
                NameLabel.Visibility = Visibility.Visible;
                return;
            }

            if (_entity == EntityForAdd.Student)
            {
                CourseModel cour = (CourseModel)CoursesComboBox.SelectedItem;

                if (cour == null)
                {
                    CourseMessageLabel.Visibility = Visibility.Visible;
                    return;
                }
                else
                {
                    StudentService stService = new StudentService();
                    stService.AddStudent(NameTextBox.Text, cour.Id);
                    MainWindow.MainNavigationService.Navigate(new Students());
                }
            }

            else if (_entity == EntityForAdd.Course)
            {
                if (CoursesCostTextBox.Text == "")
                {
                    CourseCostMessageLabel.Visibility = Visibility.Visible;
                    return;
                }
                else
                {
                    CourseService courServ = new CourseService();
                    courServ.AddCourse(NameTextBox.Text, Convert.ToDecimal(CoursesCostTextBox.Text));
                    MainWindow.MainNavigationService.Navigate(new Courses());
                }
            }
        }
        public void Post_if_create_in_db_course_failes_then_return_error_view()
        {
            #region Arrange
            using (Mock.Record())
            {
                Expect.Call(CourseService.AddCourse(Course)).IgnoreArguments().Return(null);
            }
            #endregion

            #region Act
            ViewResult view;
            using (Mock.Playback())
            {
                view = (ViewResult)CourseController.Create(Course);
            }

            #endregion

            #region Assert
            Assert.That(view.ViewName, Is.EqualTo("Error"));
            Assert.That(view.ViewBag.Error, Is.EqualTo(elearn.Common.ErrorMessages.Course.AddToDbError));
            #endregion
        }
        public void Post_adds_course_then_redirects_to_details_action()
        {
            #region Arrange

            using (Mock.Record())
            {
                Expect.Call(CourseService.AddCourse(Course)).IgnoreArguments().Return(1);
            }
            #endregion

            #region Act
            RedirectToRouteResult redirect;
            using (Mock.Playback())
            {
                redirect = (RedirectToRouteResult)CourseController.Create(new CourseDto());
            }

            #endregion

            #region Assert
            redirect.AssertActionRedirect().ToAction("Details").WithParameter("id", 1);
            #endregion
        }
        public void ThrowArgumentNullException_WhenInvokedWithInvalidNullCourseDtoParameter()
        {
            //Arrange
            var coursesMock        = new Mock <IRepository <Course> >();
            var studentCoursesMock = new Mock <IRepository <StudentCourse> >();
            var mapperMock         = new Mock <IMappingProvider>();
            var saverMock          = new Mock <ISaver>();

            var courseDto = new CourseDto()
            {
                Id           = new Guid("12367a78-faf1-40c9-abcd-0c3131a03312"),
                Name         = "DSA",
                Credits      = 5,
                LecturerName = "Sasho Dikov"
            };

            var course = new Course()
            {
                Id           = new Guid("12367a78-faf1-40c9-abcd-0c3131a03312"),
                Name         = "DSA",
                Credits      = 5,
                LecturerName = "Sasho Dikov"
            };

            mapperMock
            .Setup(x => x.MapTo <Course>(courseDto))
            .Returns(course);

            var courseService = new CourseService(
                coursesMock.Object,
                studentCoursesMock.Object,
                mapperMock.Object,
                saverMock.Object);

            //Act && Assert
            Assert.ThrowsException <ArgumentNullException>(() => courseService.AddCourse(null));
        }
Exemple #23
0
 public ActionResult Create(Course course)
 {
     courseService.AddCourse(course);
     return(RedirectToAction("Index"));
 }
Exemple #24
0
 public void Execute()
 {
     _courseService.ImpersonateEmail(_course.PrimaryTeacher.Email);
     _course = _courseService.AddCourse(_course);
     Result  = _course;
 }
Exemple #25
0
        public JsonResult AddCourse([FromBody] AddCourseModel courseModel)
        {
            try
            {
                // Convert Model to Data Transafer Object Model which accept in Add Course Method
                var moduleModelDto = new List <ModuleModel>();
                courseModel.Modules
                .OrderBy(m => m.Order)
                .ToList()
                .ForEach(m =>
                {
                    if (m.Icon == "TEXT")
                    {
                        moduleModelDto.Add(new TextModuleModel
                        {
                            Title       = m.Title,
                            Description = m.Description,
                            CanSkip     = m.CanSkip
                        });
                    }

                    if (m.Icon == "VIDEO")
                    {
                        moduleModelDto.Add(new VideoModuleModel
                        {
                            Title    = m.Title,
                            CanSkip  = m.CanSkip,
                            Uri      = m.Uri,
                            Duration = new System.TimeSpan(0, 0, 0)
                        });
                    }

                    if (m.Icon == "QUESTION")
                    {
                        moduleModelDto.Add(new QuestionModuleModel
                        {
                            Title   = m.Title,
                            CanSkip = m.CanSkip,
                            Text    = m.Text,
                            Choices = m.Choices
                        });
                    }
                });

                var courseModelDto = new CourseModel
                {
                    Subject     = courseModel.Subject,
                    Description = courseModel.Description,
                    Modules     = moduleModelDto
                };

                return(Json(CourseService.AddCourse(new Input <CourseModel>
                {
                    OperationBy = "System",
                    Arguments = courseModelDto
                })));
            }
            catch (Exception exception)
            {
                return(Json(OutputResult.FailOutputResult(exception.Message)));
            }
        }
 public void AddCourse(User user, Course course)
 {
     courseService.AddCourse(user, course);
 }
 public int AddCourse(Course course)
 {
     return(courseService.AddCourse(course));
 }
 public void AddCourse(int user_id, Course course)
 {
     courseService.AddCourse(user_id, course);
 }
Exemple #29
0
        /// <summary>
        /// 添加课程
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnAdd_Click(object sender, EventArgs e)
        {
            //判断信息是否为空
            if (this.combSpecialityName.SelectedIndex == -1)
            {
                MessageBox.Show("请选择专业!", "添加提示");
                this.combSpecialityName.Focus();
                return;
            }
            if (this.combClassName.SelectedIndex == -1)
            {
                MessageBox.Show("请选择班级!", "添加提示");
                this.combClassName.Focus();
                return;
            }
            if (txtCourseName.Text.Trim().Length == 0)
            {
                MessageBox.Show("请填写课程名称!", "添加提示");
                this.txtCourseName.Focus();
                return;
            }
            if (txtTeacher.Text.Trim().Length == 0)
            {
                MessageBox.Show("请填写任课教师!", "添加提示");
                this.txtCourseName.Focus();
                return;
            }
            if (combSemester.Text.Trim().Length == 0)
            {
                MessageBox.Show("请选择学期!", "添加提示");
                this.combSemester.Focus();
                return;
            }
            if (this.objCourseService.IsCourseExisted(this.txtCourseName.Text.Trim(), combSemester.Text.Trim(), combClassName.Text.Trim()))
            {
                MessageBox.Show("该班级本学期已经存在此课程!", "添加提示");
                this.txtCourseName.Focus();
                this.txtCourseName.SelectAll();
                return;
            }
            //封装课程对象
            Course objCourse = new Course()
            {
                ClassName          = combClassName.Text.Trim(),
                Semester           = combSemester.Text.Trim(),
                CourseName         = txtCourseName.Text.Trim(),
                ClassID            = Convert.ToInt32(combClassName.SelectedValue),
                Teacher            = txtTeacher.Text.Trim(),
                TeacherPhoneNumber = txtTeacherPhoneNumber.Text.Trim()
            };

            //提交对象

            try
            {
                int result = objCourseService.AddCourse(objCourse);
                if (result == 1)
                {
                    DialogResult dresult = MessageBox.Show("添加成功!是否继续添加", "添加询问", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
                    if (dresult == DialogResult.OK)
                    {
                        //清空当前的文本框
                        //初始化专业下拉框
                        combCollageName.Text       = "";
                        txtCourseName.Text         = "";
                        combSemester.Text          = "";
                        combClassName.Text         = "";
                        combSpecialityName.Text    = "";
                        dtpEnrolmentTime.Value     = DateTime.Today;
                        txtTeacherPhoneNumber.Text = "";
                        txtTeacher.Text            = "";
                    }
                }
                else
                {
                    MessageBox.Show("添加失败!", "添加提示");
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }