Esempio n. 1
0
        public bool AddClass(string name, IEnumerable <string> subjecIds)
        {
            Guard.WhenArgument(name, "name").IsNullOrEmpty().Throw();
            Guard.WhenArgument(subjecIds, "subjecIds").IsNull().Throw();

            if (this.IsClassNameUnique(name))
            {
                return(false);
            }
            else
            {
                using (var uow = this.unitOfWork())
                {
                    var classOfStudents = new ClassOfStudents()
                    {
                        Name = name
                    };

                    // adding subjects for the class
                    foreach (var subject in subjecIds)
                    {
                        this.subjectClassOfStudnetsrepo.Add(new SubjectClassOfStudents()
                        {
                            SubjectId       = int.Parse(subject),
                            ClassOfStudents = classOfStudents
                        });
                    }

                    this.classOfStudentsRepo.Add(classOfStudents);

                    return(uow.Commit());
                }
            }
        }
        public void ReturnEmptyCollection_WhenThereAreNotSubjectsAvaiableToAssignForThisClass()
        {
            var mockedSubjectRepo   = new Mock <IRepository <Subject> >();
            var mockedSubjClassRepo = new Mock <IRepository <SubjectClassOfStudents> >();
            var mockedUow           = new Mock <IUnitOfWork>().Object;

            var classId         = 1;
            var classOfStudents = new ClassOfStudents()
            {
                Id = classId, Name = "classOfStudents"
            };
            var subject = new Subject()
            {
                Id = 1, Name = "Subj1"
            };

            var subjects = new List <Subject>()
            {
                subject
            };

            var data = new List <SubjectClassOfStudents>();

            {
                new SubjectClassOfStudents()
                {
                    SubjectId = subject.Id, ClassOfStudentsId = classId
                };
            };

            subject.SubjecClassOfStudents = data;

            IEnumerable <int> alreadyassigndedSubjectIds = null;

            mockedSubjClassRepo.Setup(x =>
                                      x.GetAll(It.IsAny <Expression <Func <SubjectClassOfStudents, bool> > >(),
                                               It.IsAny <Expression <Func <SubjectClassOfStudents, int> > >(),
                                               It.IsAny <Expression <Func <SubjectClassOfStudents, object> >[]>()))
            .Returns((Expression <Func <SubjectClassOfStudents, bool> > predicate,
                      Expression <Func <SubjectClassOfStudents, int> > select) =>
                     alreadyassigndedSubjectIds = data.Where(predicate.Compile()).Select(select.Compile()).ToList()
                     );

            IEnumerable <SubjectBasicInfoModel> expected = null;

            mockedSubjectRepo.Setup(x =>
                                    x.GetAll(It.IsAny <Expression <Func <Subject, bool> > >(),
                                             It.IsAny <Expression <Func <Subject, SubjectBasicInfoModel> > >()))
            .Returns((Expression <Func <Subject, bool> > predicate,
                      Expression <Func <Subject, SubjectBasicInfoModel> > select) =>
                     expected = subjects.Where(predicate.Compile()).Select(select.Compile()).ToList()
                     );

            var subjectsManagementService = new SubjectManagementService(mockedSubjectRepo.Object, mockedSubjClassRepo.Object, () => mockedUow);

            var result = subjectsManagementService.GetSubjectsNotYetAssignedToTheClass(classId);

            CollectionAssert.AreEquivalent(expected, result);
            Assert.AreEqual(0, result.Count());
        }
Esempio n. 3
0
        public static void MainTest(Random rng)
        {
            // Create a ClassOfStudents
            var filename          = @"myClassOfStudents.txt";
            var myClassOfStudents = ClassOfStudents.CreateFromFile(filename);

            myClassOfStudents.FirstBeforeLast();
        }
        public void Call_GetAllMethod_FromSubjectsClassOfStudentsRepo_Once_AndReturnCorrectResult()
        {
            var mockedClassOfStudentsRepo        = new Mock <IRepository <ClassOfStudents> >();
            var mockedUnitOfWork                 = new Mock <IUnitOfWork>();
            var mockedSubjectClassOfStudentsRepo = new Mock <IRepository <SubjectClassOfStudents> >();

            var service = new ClassOfStudentsManagementService(mockedClassOfStudentsRepo.Object, mockedSubjectClassOfStudentsRepo.Object, () => mockedUnitOfWork.Object);

            var subjectId = 1;

            var firstClassOofStudents = new ClassOfStudents()
            {
                Id = 1
            };
            var secondClassOfStudents = new ClassOfStudents()
            {
                Id = 2
            };
            var thirdClassOfStudents = new ClassOfStudents()
            {
                Id = 3
            };

            var dataToFilter = new List <SubjectClassOfStudents>()
            {
                new SubjectClassOfStudents()
                {
                    SubjectId = 1, ClassOfStudents = firstClassOofStudents
                },
                new SubjectClassOfStudents()
                {
                    SubjectId = 1, ClassOfStudents = secondClassOfStudents
                },
                new SubjectClassOfStudents()
                {
                    SubjectId = 1, ClassOfStudents = thirdClassOfStudents
                },
            };

            IEnumerable <ClassOfStudents> expected = null;

            mockedSubjectClassOfStudentsRepo.Setup(x => x.GetAll(It.IsAny <Expression <Func <SubjectClassOfStudents, bool> > >(), It.IsAny <Expression <Func <SubjectClassOfStudents, ClassOfStudents> > >()))
            .Returns(
                (Expression <Func <SubjectClassOfStudents, bool> > predicate,
                 Expression <Func <SubjectClassOfStudents, ClassOfStudents> > select) =>
                expected = dataToFilter
                           .Where(predicate.Compile())
                           .Select(select.Compile()));

            var result = service.GetAllClassesWithSpecifiedSubject(subjectId);

            mockedSubjectClassOfStudentsRepo
            .Verify(x => x.GetAll(It.IsAny <Expression <Func <SubjectClassOfStudents, bool> > >(), It.IsAny <Expression <Func <SubjectClassOfStudents, ClassOfStudents> > >()), Times.Once);

            CollectionAssert.AreEquivalent(expected, result);
        }
Esempio n. 5
0
        public static ClassOfStudents ToClassOfStudents <T>(this IEnumerable <T> collection)
            where T : Student
        {
            var output = new ClassOfStudents();

            foreach (dynamic student in collection)
            {
                output.AddStudent(student);
            }

            return(output);
        }
Esempio n. 6
0
        public static void TimedEventTest()
        {
            var timer = new Timer(5);

            var myStudents = new ClassOfStudents();

            // Student has a constuctor for testing
            // subscribing to the testing event TimedEvent
            // printing first and last name on event
            myStudents.AddStudent(new Student("1", "1", timer));
            myStudents.AddStudent(new Student("2", "2"));
            myStudents.AddStudent(new Student("3", "3", timer));

            timer.Run();
        }
Esempio n. 7
0
        public static void TimedEventTest()
        {
            var timer = new Timer(5);

            var myStudents = new ClassOfStudents();

            // Student has a constuctor for testing
            // subscribing to the testing event TimedEvent
            // printing first and last name on event
            myStudents.AddStudent(new Student("1", "1", timer));
            myStudents.AddStudent(new Student("2", "2"));
            myStudents.AddStudent(new Student("3", "3", timer));

            timer.Run();
        }
Esempio n. 8
0
    static void Main()
    {
        Student marko = new Student("Marko Ivanov", "015");
        Student petkan = new Student("Petkan Ivanov", "91");
        Student dragan = new Student("Dragan Ivanov", "015");
        List<Student> students = new List<Student>(){marko, petkan, dragan};

        Discipline biology = new Discipline("Biology", 12, 12);
        Discipline chemistry = new Discipline("Chemistry", 15, 12);
        Discipline math = new Discipline("Math", 150, 100);
        List<Discipline> disciplines=new List<Discipline>(){biology, chemistry,math};

        Teacher petkov = new Teacher("Georgi Dimitrov", disciplines);
        List<Teacher> teachers = new List<Teacher>() { petkov };

        ClassOfStudents classA = new ClassOfStudents("11A", teachers, students);

        Console.WriteLine("The teacher of {0} of {1} is {2}", disciplines[0].Name,
            classA.ClassIdentifier,teachers[0].Name);
    }
Esempio n. 9
0
        public void ReturnCorrectlyMappedData()
        {
            var mockedSubjectRepo = new Mock <IRepository <Subject> >();
            var mockedUserRepo    = new Mock <IRepository <User> >();
            var mockedTeacherRepo = new Mock <IRepository <Teacher> >();
            var mockedSubjectClassOfStudentsDaysOfWeekRepo = new Mock <IRepository <SubjectClassOfStudentsDaysOfWeek> >();
            var mockedDaysOfWeekRepo = new Mock <IRepository <DaysOfWeek> >();
            var mockedStudentRepo    = new Mock <IRepository <Student> >();
            var mockedUnitOfWork     = new Mock <Func <IUnitOfWork> >();

            var scheduleService = new ScheduleDataService(
                mockedSubjectRepo.Object,
                mockedUserRepo.Object,
                mockedTeacherRepo.Object,
                mockedSubjectClassOfStudentsDaysOfWeekRepo.Object,
                mockedDaysOfWeekRepo.Object,
                mockedStudentRepo.Object,
                mockedUnitOfWork.Object);

            var studentUserName = "******";
            var user            = new User()
            {
                UserName = studentUserName
            };

            mockedUserRepo
            .Setup(x => x.GetFirst(It.IsAny <Expression <Func <User, bool> > >()))
            .Returns(user);

            var classOfStudnetsName = "ClassOfStudentsName";
            var classOfStudents     = new ClassOfStudents()
            {
                Id   = 1,
                Name = classOfStudnetsName
            };

            var student = new Student()
            {
                ClassOfStudents = classOfStudents,
                User            = user,
                Id = user.Id,
                ClassOfStudentsId = classOfStudents.Id
            };

            mockedStudentRepo
            .Setup(x => x.GetFirst(It.IsAny <Expression <Func <Student, bool> > >()))
            .Returns(student);

            DayOfWeek dayOfWeek = DayOfWeek.Monday;
            var       day       = new DaysOfWeek()
            {
                Id = 1, Name = dayOfWeek.ToString()
            };

            var startHour = It.IsAny <DateTime>();
            var endHour   = It.IsAny <DateTime>();

            var subjectName = "test";
            var subjectId   = 1;

            var teacher = new Teacher()
            {
                User = new User()
                {
                    LastName = "TeacherLastName"
                }
            };

            var subject = new Subject()
            {
                Name     = subjectName,
                Teacher  = teacher,
                Id       = subjectId,
                ImageUrl = "UrlToTheImage"
            };

            var subjectsClassOfStudnets = new SubjectClassOfStudents()
            {
                ClassOfStudentsId = 1,
                Subject           = subject,
                ClassOfStudents   = classOfStudents
            };

            var data = new List <SubjectClassOfStudentsDaysOfWeek>()
            {
                new SubjectClassOfStudentsDaysOfWeek()
                {
                    SubjectClassOfStudents = subjectsClassOfStudnets,
                    StartHour         = startHour,
                    EndHour           = endHour,
                    ClassOfStudentsId = 1,
                    DaysOfWeekId      = 1,
                    SubjectId         = 1,
                    DaysOfWeek        = day
                }
            };

            IEnumerable <ScheduleModel> expectedResult = null;

            mockedSubjectClassOfStudentsDaysOfWeekRepo
            .Setup(
                x => x.GetAll(
                    It.IsAny <Expression <Func <SubjectClassOfStudentsDaysOfWeek, bool> > >(),
                    It.IsAny <Expression <Func <SubjectClassOfStudentsDaysOfWeek, ScheduleModel> > >(),
                    It.IsAny <Expression <Func <SubjectClassOfStudentsDaysOfWeek, object> >[]>()))
            .Returns((Expression <Func <SubjectClassOfStudentsDaysOfWeek, bool> > predicate,
                      Expression <Func <SubjectClassOfStudentsDaysOfWeek, ScheduleModel> > expression,
                      Expression <Func <SubjectClassOfStudentsDaysOfWeek, object> >[] include) =>
            {
                expectedResult = data.Where(predicate.Compile()).Select(expression.Compile()).ToList();
                return(expectedResult);
            });

            // ACT
            var result = scheduleService.GetStudentScheduleForTheDay(dayOfWeek, studentUserName);

            CollectionAssert.AreEquivalent(expectedResult, result);
        }
Esempio n. 10
0
 public void RemoveClass(ClassOfStudents @class)
 {
     this.Classes.Remove(@class);
 }
Esempio n. 11
0
 public void AddClass(ClassOfStudents @class)
 {
     this.Classes.Add(@class);
 }