Пример #1
0
        // GET: Courses/PartialDetails/5
        public async Task <IActionResult> PartialDetails(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            var course = await db.Courses
                         .FirstOrDefaultAsync(m => m.Id == id);

            var teachers = await userManager.GetUsersInRoleAsync("Teacher");

            var teacher = teachers.FirstOrDefault(s => s.CourseId == id);

            var viewModel = new CourseDetailsViewModel();

            viewModel.Course = course;

            if (teacher is null)
            {
                viewModel.TeacherName = "No teacher chosen";
            }
            else
            {
                viewModel.TeacherName = teacher.FullName;
            }

            if (course == null)
            {
                return(NotFound());
            }

            return(PartialView("CoursePartialDetails", viewModel));
        }
        public async Task <IActionResult> Details(int courseId)
        {
            Course           courseFromDB  = _coursesRepository.GetById(courseId);
            SubjectViewModel subjectFromDB = _subjectsRepository.GetById(courseFromDB.Subject.SubjectId);
            List <CourseModuleEditViewModel> modulesFromDB = await _coursesRepository.GetScheduleModules(courseId);

            List <Student> students = await _studentsRepository.GetStudentsByCourse(courseId);

            User userFromDB = await _usersRepository.GetByEmail(courseFromDB.Teacher.Email);

            CourseDetailsViewModel courseDetailsViewModel = new CourseDetailsViewModel()
            {
                Course  = courseFromDB,
                Subject = new Subject()
                {
                    SubjectId   = subjectFromDB.SubjectId,
                    Name        = subjectFromDB.Name,
                    Description = subjectFromDB.Description
                },
                Teacher = new AspNetUsers()
                {
                    FirstName  = userFromDB.FirstName,
                    LastName   = userFromDB.LastName,
                    MiddleName = userFromDB.MiddleName
                },
                Modules  = modulesFromDB,
                Students = students
            };

            return(View(courseDetailsViewModel));
        }
        public void Test_ExtractSectionRatings_with_ValidCourse()
        {
            // Arrange

            CourseModel dummy_courseToAttach = new CourseModel();

            dummy_courseToAttach.Id              = "1010";
            dummy_courseToAttach.Department      = "COMP";
            dummy_courseToAttach.Difficulty      = 7.62;
            dummy_courseToAttach.DifficultyCount = 1;
            dummy_courseToAttach.SectionRatings  = new Dictionary <string, Dictionary <string, double> >
            {
                { "test_person", new Dictionary <string, double> {
                      { "rating", 9.76 }, { "count", 4 }
                  } }
            };

            var testCourseDetailsVM = new CourseDetailsViewModel(dummy_courseToAttach);

            // Act

            testCourseDetailsVM.ExtractSectionRatings();

            // Assert
            Assert.IsTrue(testCourseDetailsVM.SectionRatings.Count == dummy_courseToAttach.SectionRatings.Count, "Not all section ratings were extracted in VM");
            Assert.IsTrue(testCourseDetailsVM.SectionRatings.Any(s => s.Name == "test_person" && s.Rating == 9.76 && s.Count == 4), "Could not find a section rating with provided test dummy data");
        }
        // GET: Courses/Details/5
        public async Task <IActionResult> Details(int?id, int?studentId)
        {
            ViewBag.StudentId = studentId;

            if (id == null)
            {
                return(NotFound());
            }

            CourseDetailsViewModel model = new CourseDetailsViewModel
            {
                Course = await _context.Courses.Include(c => c.Department)
                         .AsNoTracking()
                         .SingleOrDefaultAsync(m => m.CourseID == id)
            };

            if (model.Course == null)
            {
                return(NotFound());
            }

            model.OtherCourses = await _context.Courses
                                 .Where(c => c.CourseID != id && c.DepartmentID == model.Course.DepartmentID)
                                 .ToListAsync();

            return(View(model));
        }
        public void Test_ExtractSectionRatings_with_InvalidSections()
        {
            // Arrange

            CourseModel dummy_courseToAttach = new CourseModel();

            dummy_courseToAttach.Id              = "1010";
            dummy_courseToAttach.Department      = "COMP";
            dummy_courseToAttach.Difficulty      = 7.62;
            dummy_courseToAttach.DifficultyCount = 1;
            dummy_courseToAttach.SectionRatings  = new Dictionary <string, Dictionary <string, double> >
            {
                { "test_person", new Dictionary <string, double> {
                      { "NOrating", 9.76 }, { "NOcount", 4 }
                  } }
            };

            var testCourseDetailsVM = new CourseDetailsViewModel(dummy_courseToAttach);

            // Act

            testCourseDetailsVM.ExtractSectionRatings();

            // Assert
            Assert.IsTrue(testCourseDetailsVM.SectionRatings.Count == 0, "Sections should not exist for course with invalid section data");
        }
Пример #6
0
        public CourseDetailsViewModel GetDetails(int id)
        {
            var rand          = new Random();
            var price         = Convert.ToDecimal(rand.NextDouble() * 10 + 10);
            var courseDetails = new CourseDetailsViewModel
            {
                Id           = id,
                Title        = $"Corso{id}",
                CurrentPrice = new Money(Currency.EUR, price),
                FullPrice    = new Money(Currency.EUR, rand.NextDouble() > 0.5 ? price : price - 1),
                Author       = "Nome Cognome",
                Rating       = rand.NextDouble() * 5.0,
                Description  = $"Description{id}",
                ImagePath    = "~/logo.svg",
                Lessons      = new List <LessonViewModel>()
            };

            for (var i = 1; i <= 5; ++i)
            {
                var lesson = new LessonViewModel
                {
                    Title    = $"Lesson{i}",
                    Duration = TimeSpan.FromSeconds(rand.Next(40, 90))
                };
                courseDetails.Lessons.Add(lesson);
            }
            return(courseDetails);
        }
        public void ShowProviderDetailsPhoneNumberTest(bool providerDetailsExist)
        {
            // Arrange
            var courseDetailsProviderDetails = new _MVC_Views_CourseDetails_Provider_cshtml();
            var providerDetails        = new ProviderDetails();
            var courseDetailsViewModel = new CourseDetailsViewModel();

            courseDetailsViewModel.CourseDetails.ProviderDetails = providerDetails;
            if (providerDetailsExist)
            {
                courseDetailsViewModel.CourseDetails.ProviderDetails.PhoneNumber = nameof(CourseDetails.ProviderDetails.PhoneNumber);
            }
            else
            {
                courseDetailsViewModel.CourseDetails.ProviderDetails.PhoneNumber = null;
            }

            // Act
            var htmlDocument = courseDetailsProviderDetails.RenderAsHtml(courseDetailsViewModel);

            // Assert
            if (providerDetailsExist)
            {
                htmlDocument.DocumentNode.Descendants("li")
                .Any(li => li.InnerText.Contains(courseDetailsViewModel.CourseDetails.ProviderDetails.PhoneNumber)).Should().BeTrue();
            }
            else
            {
                htmlDocument.DocumentNode.Descendants("li")
                .Any(li => li.InnerText.Contains(courseDetailsViewModel.CourseDetails.ProviderDetails.PhoneNumber)).Should().BeFalse();
            }
        }
        public void ShowHideBackToResultsTest(bool referralUrlExists)
        {
            // Arrange
            var courseDetailsHtml      = new _MVC_Views_CourseDetails_CourseDetails_cshtml();
            var courseDetailsViewModel = new CourseDetailsViewModel();
            var courseDetails          = new CourseDetails();

            if (referralUrlExists)
            {
                courseDetailsViewModel.ReferralPath = nameof(CourseDetailsViewModel.ReferralPath);
            }
            else
            {
                courseDetailsViewModel.ReferralPath = null;
            }

            // Act
            var htmlDocument = courseDetailsHtml.RenderAsHtml(courseDetailsViewModel);

            // Assert
            if (referralUrlExists)
            {
                htmlDocument.DocumentNode.Descendants("a")
                .Any(a => a.Attributes["class"].Value.Contains("govuk-back-link") &&
                     a.Attributes["href"].Value.Contains(courseDetailsViewModel.ReferralPath)).Should().BeTrue();
            }
            else
            {
                htmlDocument.DocumentNode.Descendants("a")
                .Any(a => a.Attributes["class"].Value.Contains("govuk-back-link") &&
                     a.Attributes["href"].Value.Contains(courseDetailsViewModel.ReferralPath)).Should().BeFalse();
            }
        }
        public void ShowProviderDetailsEmailAddressTest(bool providerDetailsExist)
        {
            // Arrange
            var courseDetailsProviderDetails = new _MVC_Views_CourseDetails_Provider_cshtml();
            var providerDetails        = new ProviderDetails();
            var courseDetailsViewModel = new CourseDetailsViewModel();

            courseDetailsViewModel.CourseDetails.ProviderDetails = providerDetails;
            if (providerDetailsExist)
            {
                courseDetailsViewModel.CourseDetails.ProviderDetails.EmailAddress = nameof(CourseDetails.ProviderDetails.EmailAddress);
            }

            // Act
            var htmlDocument = courseDetailsProviderDetails.RenderAsHtml(courseDetailsViewModel);

            // Assert
            if (providerDetailsExist)
            {
                htmlDocument.DocumentNode.Descendants("a")
                .Any(a => a.Attributes["class"].Value.Contains("govuk-link") &&
                     a.InnerText.Contains(courseDetailsViewModel.CourseDetails.ProviderDetails.EmailAddress)).Should().BeTrue();
            }
            else
            {
                htmlDocument.DocumentNode.Descendants("a")
                .Any(a => a.Attributes["class"].Value.Contains("govuk-link") &&
                     a.InnerText.Contains(courseDetailsViewModel.CourseDetails.ProviderDetails.EmailAddress)).Should().BeFalse();
            }
        }
        public IActionResult Index(string providerCode, string courseCode, ResultsFilter filter)
        {
            if (featureFlags.RedirectToRailsPageCourse)
            {
                return(redirectUrlService.RedirectToNewApp("/course/" + $"{providerCode}" + "/" + $"{courseCode}"));
            }

            var course  = _api.GetCourse(providerCode, courseCode);
            var feeCaps = _api.GetFeeCaps();

            var latestFeeCaps = feeCaps.OrderByDescending(x => x.EndYear).FirstOrDefault();

            if (course == null || latestFeeCaps == null)
            {
                return(NotFound());
            }

            var viewModel = new CourseDetailsViewModel()
            {
                Course      = course,
                Finance     = new Shared.ViewModels.FinanceViewModel(course, latestFeeCaps),
                PreviewMode = false
            };

            return(View(viewModel));
        }
        private bool ValidateCourseForEdit(Course courseToEdit, CourseDetailsViewModel viewModel, ModelStateDictionary modelState)
        {
            bool result = true;

            if (viewModel != null)
            {
                if (viewModel.From.HasValue)
                {
                    if (courseToEdit.CheckHasEnded())
                    {
                        modelState.AddModelError("Title", "Course has already ended");
                        result = false;
                    }
                    else
                    {
                        if (!courseToEdit.CheckHasStarted() && viewModel.From.Value.Date < DateTime.Today)
                        {
                            modelState.AddModelError("From", "From date must be greater than or equal to today");
                            result = false;
                        }

                        if (!courseToEdit.CheckHasStarted() && viewModel.To.Value.Date < DateTime.Today)
                        {
                            modelState.AddModelError("To", "To date must be greater than or equal to today");
                            result = false;
                        }
                    }
                }
            }

            return(result);
        }
        public void CourseCanBeDelete()
        {
            DbContextOptions <Lab13StudentEnrollmentDbContext> options =
                new DbContextOptionsBuilder <Lab13StudentEnrollmentDbContext>()
                .UseInMemoryDatabase(Guid.NewGuid().ToString())
                .Options;

            using (Lab13StudentEnrollmentDbContext context = new Lab13StudentEnrollmentDbContext(options))
            {
                Course course = new Course();
                course.CourseID    = "cs101";
                course.Description = "Basic computer science class";

                CoursesController cc = new CoursesController(context);
                var x        = cc.Create(course);
                var retrieve = context.Courses.Where(c => course.CourseID == "cs101").ToList();

                ViewResult             current = (ViewResult)cc.Details(retrieve[0].ID).Result;
                CourseDetailsViewModel test    = (CourseDetailsViewModel)current.Model;

                Assert.Equal("cs101", test.Course.CourseID);

                x        = cc.Delete(test.Course.ID);
                retrieve = context.Courses.Where(c => c.CourseID == "cs101").ToList();
                Assert.Empty(retrieve);
            }
        }
        public ActionResult View(int id)
        {
            if (id <= 0)
            {
                return(RedirectToAction("Index"));
            }
            else
            {
                Course courseToView = unitOfWork.CoursesRepository.GetCourseById(id);

                if (courseToView != null)
                {
                    CourseDetailsViewModel viewModel = new CourseDetailsViewModel()
                    {
                        Id          = courseToView.Id,
                        Title       = courseToView.Title,
                        Description = courseToView.Description,
                        From        = courseToView.From.Date,
                        To          = courseToView.To.Date,
                        IsCancelled = courseToView.IsCancelled
                    };

                    return(View(viewModel));
                }
                else
                {
                    return(RedirectToAction("Index"));
                }
            }
        }
Пример #14
0
        public void Test_GetContextedCourseVM_with_ValidCourse()
        {
            // Arrange
            StubHttpConnection stub_connection = new StubHttpConnection();
            List <CourseModel> test_courseList = new List <CourseModel>();

            CourseModel dummy_courseToAttach = new CourseModel();

            dummy_courseToAttach.Id              = "1000";
            dummy_courseToAttach.Department      = "STAT";
            dummy_courseToAttach.Name            = "Should be in final list";
            dummy_courseToAttach.Difficulty      = 5.55;
            dummy_courseToAttach.DifficultyCount = 9;
            dummy_courseToAttach.SectionRatings  = new Dictionary <string, Dictionary <string, double> >
            {
                { "test_person1", new Dictionary <string, double> {
                      { "rating", 6.9 }, { "count", 10 }
                  } }
            };

            DepartmentViewModel deptVmToTest = new DepartmentViewModel("TEST", stub_connection);

            // Act

            CourseDetailsViewModel courseVmToTest = deptVmToTest.GetContextedCourseVM(dummy_courseToAttach);

            // Assert

            Assert.IsTrue(courseVmToTest.DepartmentName.Equals("Department of " + dummy_courseToAttach.Department), "Returned contexted course had different department");
            Assert.IsTrue(courseVmToTest.DifficultyLevel.Equals(dummy_courseToAttach.Difficulty), "Returned contexted course had difficulty level");
            Assert.IsTrue(courseVmToTest.DifficultyCount.Equals("Based on " + dummy_courseToAttach.DifficultyCount + " reviews"), "Returned contexted course had difficulty count");
            Assert.IsTrue(courseVmToTest.NameAndId.Equals(dummy_courseToAttach.Id + " - " + dummy_courseToAttach.Name), "Returned contexted course had different course name and id");
        }
Пример #15
0
        public ActionResult Subscribe(CourseDetailsViewModel model)
        {
            var userId = User.Identity.GetUserId();

            _courseService.Subscribe(userId, model.Id);
            return(RedirectToAction("Index"));
        }
        public void ShowProviderDetailsNameTest(bool providerDetailsExist)
        {
            // Arrange
            var courseDetailsProviderDetails = new _MVC_Views_CourseDetails_Provider_cshtml();
            var providerDetails        = new ProviderDetails();
            var courseDetailsViewModel = new CourseDetailsViewModel();

            courseDetailsViewModel.CourseDetails.ProviderDetails = providerDetails;
            if (providerDetailsExist)
            {
                courseDetailsViewModel.CourseDetails.ProviderDetails.Name = nameof(CourseDetails.ProviderDetails.Name);
            }
            else
            {
                courseDetailsViewModel.CourseDetails.ProviderDetails.Name = null;
            }

            // Act
            var htmlDocument = courseDetailsProviderDetails.RenderAsHtml(courseDetailsViewModel);

            // Assert
            if (providerDetailsExist)
            {
                htmlDocument.DocumentNode.Descendants("p")
                .Any(p => p.Attributes["class"].Value.Contains("govuk-body-lead") &&
                     p.InnerText.Contains(courseDetailsViewModel.CourseDetails.ProviderDetails.Name)).Should().BeTrue();
            }
            else
            {
                htmlDocument.DocumentNode.Descendants("p")
                .Any(p => p.Attributes["class"].Value.Contains("govuk-body-lead") &&
                     p.InnerText.Contains(nameof(courseDetailsViewModel.CourseDetails.ProviderDetails.Name))).Should().BeFalse();
            }
        }
        public async Task <CourseDetailsViewModel> GetDetailsAsync(int id)
        {
            CourseDetailsViewModel corsoDetails = await dbContext.Corsi.Where(corso => corso.Id == id)
                                                  .AsNoTracking()
                                                  .Select(corso =>
                                                          new CourseDetailsViewModel
            {
                Id           = corso.Id,
                Title        = corso.Title,
                Description  = corso.Description,
                ImagePath    = corso.ImagePath,
                Author       = corso.Author,
                Rating       = corso.Rating,
                CurrentPrice = corso.CurrentPrice,
                FullPrice    = corso.FullPrice,
                Lessons      = corso.Lessons.Select(lesson =>
                                                    new LessonViewModel
                {
                    Id          = lesson.Id,
                    Title       = lesson.Title,
                    Description = lesson.Description,
                    Duration    = lesson.Duration
                }).ToList()
            })
                                                  .SingleAsync();//Restituisce il primo elemento dell'elenco ma solleva un'eccezione se l'elenco è vuoto o ha più di un elemento univoco.

            return(corsoDetails);
        }
        public ActionResult Create(CourseDetailsViewModel viewModel)
        {
            ActionResult result = null;

            try
            {
                if (ModelState.IsValid && ValidateCourseForCreate(viewModel, ModelState) && !CheckCourseTitleAlreadyExists(viewModel.Title))
                {
                    Course newCourse = new Models.Course(viewModel.Title, viewModel.Description, viewModel.From.Value, viewModel.To.Value);
                    unitOfWork.CoursesRepository.CreateCourse(newCourse, User.Identity.GetUserId());
                    unitOfWork.Complete();

                    Course course = unitOfWork.CoursesRepository.GetCourseById(newCourse.Id);
                    unitOfWork.CoursesAntenna.OnCourseCreated(course);

                    result = RedirectToAction("Index");
                }
                else
                {
                    result = View(viewModel);
                }
            }
            catch
            {
                result = View(viewModel);
            }

            return(result);
        }
Пример #19
0
        // ~/Course/Details/{id}
        public IActionResult Details(int id)
        {
            var course = context.Courses.FirstOrDefault(c => c.Id == id);

            if (course == null)
            {
                TempData["ErrorMessage"] = "Το μάθημα δε βρέθηκε.";

                return(RedirectToAction("Index", "Course"));
            }

            var direction = context.Directions.FirstOrDefault(d => d.Id == course.DirectionId);
            List <CourseInstructor> instructors = context
                                                  .CourseInstructors
                                                  .Include(item => item.Instructor)
                                                  .Where(ci => ci.CourseId == id)
                                                  .ToList();

            CourseDetailsViewModel coursedetailsViewModel = new CourseDetailsViewModel()
            {
                Title       = "Στοιχεία μαθήματος " + course.Title,
                Course      = course,
                Direction   = direction,
                Instructors = instructors
            };

            return(View(coursedetailsViewModel));
        }
        public void ShowEntryRequirementsTest(bool hasValue)
        {
            // Arrange
            var courseDetailsCourseDetails = new _MVC_Views_CourseDetails_CourseDetails_cshtml();
            var courseDetailsViewModel     = new CourseDetailsViewModel();

            courseDetailsViewModel.CourseDetails = new CourseDetails();
            if (hasValue)
            {
                courseDetailsViewModel.CourseDetails.EntryRequirements = nameof(CourseDetailsViewModel.CourseDetails.EntryRequirements);
            }
            else
            {
                courseDetailsViewModel.NoEntryRequirementsAvailableMessage = nameof(CourseDetailsViewModel.NoEntryRequirementsAvailableMessage);
            }

            // Act
            var htmlDocument = courseDetailsCourseDetails.RenderAsHtml(courseDetailsViewModel);

            // Assert
            if (hasValue)
            {
                htmlDocument.DocumentNode.Descendants("p")
                .Any(div => div.Attributes["class"].Value.Contains("govuk-body") &&
                     div.InnerText.Contains(courseDetailsViewModel.CourseDetails.EntryRequirements)).Should().BeTrue();
            }
            else
            {
                htmlDocument.DocumentNode.Descendants("p")
                .Any(div => div.Attributes["class"].Value.Contains("govuk-body") &&
                     div.InnerText.Contains(courseDetailsViewModel.NoEntryRequirementsAvailableMessage)).Should().BeTrue();
            }
        }
Пример #21
0
        public async Task <IActionResult> DetailsAsync(int id)
        {
            // var courseDetailsService = new CourseService();
            CourseDetailsViewModel courseDetails = await courseService.GetDetailsAsync(id);

            ViewData["Title"] = courseDetails.Title;
            return(View(courseDetails));
        }
        public void Dfc9560MissingFieldsTest(CourseDetailsViewModel courseDetailsViewModel, CourseDetails courseDetails)
        {
            //Arrange
            courseDetailsViewModel.CourseDetails = courseDetails;
            var detailsView = new _MVC_Views_CourseDetails_CourseDetails_cshtml();

            //Act
            var htmlDocument = detailsView.RenderAsHtml(courseDetailsViewModel);

            //Asserts
            if (!string.IsNullOrWhiteSpace(courseDetails.AttendancePattern))
            {
                AssertTagInnerTextValue(htmlDocument, courseDetailsViewModel.AttendancePatternLabel, "th");
                AssertTagInnerTextValue(htmlDocument, courseDetails.AttendancePattern, "td");
            }

            if (!string.IsNullOrWhiteSpace(courseDetails.AwardingOrganisation))
            {
                AssertTagInnerTextValue(htmlDocument, courseDetailsViewModel.AwardingOrganisationLabel, "th");
                AssertTagInnerTextValue(htmlDocument, courseDetails.AwardingOrganisation, "td");
            }

            if (!string.IsNullOrWhiteSpace(courseDetails.CourseWebpageLink))
            {
                AssertTagInnerTextValue(htmlDocument, courseDetailsViewModel.CourseWebpageLinkLabel, "th");
                AssertElementExistsByAttributeAndValue(htmlDocument, "a", "href", courseDetails.CourseWebpageLink);
            }

            if (!string.IsNullOrWhiteSpace(courseDetails.StudyMode))
            {
                AssertTagInnerTextValue(htmlDocument, courseDetailsViewModel.CourseTypeLabel, "th");
                AssertTagInnerTextValue(htmlDocument, courseDetails.StudyMode, "td");
            }

            if (!string.IsNullOrWhiteSpace(courseDetails.AdditionalPrice))
            {
                AssertTagInnerTextValue(htmlDocument, courseDetailsViewModel.AdditionalPriceLabel, "th");
                AssertTagInnerTextValue(htmlDocument, courseDetails.AdditionalPrice, "td");
            }

            if (!string.IsNullOrWhiteSpace(courseDetails.QualificationName))
            {
                AssertTagInnerTextValue(htmlDocument, courseDetailsViewModel.QualificationNameLabel, "th");
                AssertTagInnerTextValue(htmlDocument, courseDetails.QualificationName, "td");
            }

            if (!string.IsNullOrWhiteSpace(courseDetails.QualificationLevel))
            {
                AssertTagInnerTextValue(htmlDocument, courseDetailsViewModel.QualificationLevelLabel, "th");
                AssertTagInnerTextValue(htmlDocument, courseDetails.QualificationLevel, "td");
            }

            if (!string.IsNullOrWhiteSpace(courseDetails.Cost))
            {
                AssertTagInnerTextValue(htmlDocument, courseDetailsViewModel.PriceLabel, "th");
                AssertTagInnerTextValue(htmlDocument, courseDetails.Cost, "td");
            }
        }
Пример #23
0
        public void TestGetAgeRange(string ageRange, string expectedResult)
        {
            var courseVariantViewModel = new CourseDetailsViewModel {
                AgeRange = ageRange
            };
            var result = courseVariantViewModel.GetAgeRange();

            result.Should().Be(expectedResult);
        }
Пример #24
0
        public void TestGetQualification(string qualification, string expectedResult)
        {
            var courseVariantViewModel = new CourseDetailsViewModel {
                Qualifications = qualification
            };
            var result = courseVariantViewModel.GetQualification();

            result.Should().Be(expectedResult);
        }
Пример #25
0
        public void TestGetRoute(string route, string expectedResult)
        {
            var courseVariantViewModel = new CourseDetailsViewModel {
                Route = route
            };
            var result = courseVariantViewModel.GetRoute();

            result.Should().Be(expectedResult);
        }
Пример #26
0
        public void TestGetStudyMode(string studyMode, string expectedResult)
        {
            var courseVariantViewModel = new CourseDetailsViewModel {
                StudyMode = studyMode
            };
            var result = courseVariantViewModel.GetStudyMode();

            result.Should().Be(expectedResult);
        }
        public CourseDetails(ObservableCollection <Course> viewModelCourses, MainWindowViewModel mainWindowViewModel)
        {
            _mainWindowViewModel = mainWindowViewModel;
            _adding    = true;
            _courses   = viewModelCourses;
            _viewModel = new CourseDetailsViewModel();

            DataContext = _viewModel;
            InitializeComponent();
        }
        public void GetQualification_should_be_empty(string input)
        {
            var param = new CourseDetailsViewModel {
                Qualifications = input
            };

            var result = param.GetQualification();

            Assert.IsTrue(result == IncorrectResult);
        }
        // GET: Course/Details/5
        public ActionResult Details(int id)
        {
            var model      = new CourseDetailsViewModel();
            var repository = new CourseRepository(context);
            var includes   = new Expression <Func <Course, object> >[] { x => x.Topics };
            var entity     = repository.QueryIncluding(x => x.Id == id, includes).SingleOrDefault();

            model = MapperHelper.Map <CourseDetailsViewModel>(entity);
            return(View(model));
        }
        public void GetAgeRange_should_be_empty(string input)
        {
            var param = new CourseDetailsViewModel {
                AgeRange = input
            };

            var result = param.GetAgeRange();

            Assert.IsTrue(result == IncorrectResult);
        }