Esempio n. 1
0
        public async Task AsyncWhenCreateALessonStudentWhenLessonIsNotFound()
        {
            var mockLessonStudentRepository = GetDefaultILessonStudentRepositoryInstance();
            var mockLessonRepository        = GetDefaultILessonRepositoryInstance();
            var mockStudentRepository       = GetDefaultIStudentRepositoryInstance();
            var mockUnitOfWork = GetDefaultIUnitOfWorkInstance();


            LessonStudent lessonStudent = new LessonStudent();

            lessonStudent.StudentId = 104;


            //STUDENT
            Student student = new Student();

            student.Id            = 104;
            lessonStudent.Student = student;
            mockStudentRepository.Setup(r => r.FindById(student.Id))
            .Returns(Task.FromResult <Student>(student));
            mockLessonStudentRepository.Setup(r => r.FindById(lessonStudent.LessonId, lessonStudent.StudentId))
            .Returns(Task.FromResult <LessonStudent>(lessonStudent));
            mockLessonStudentRepository.Setup(r => r.AddAsync(lessonStudent))
            .Returns(Task.FromResult <LessonStudent>(lessonStudent));

            var service = new LessonStudentService(mockLessonStudentRepository.Object, mockUnitOfWork.Object, mockLessonRepository.Object, mockStudentRepository.Object);
            LessonStudentResponse result = await service.SaveAsync(lessonStudent);

            var message = result.Message;

            message.Should().Be("Lesson not found");
        }
Esempio n. 2
0
        public async Task AsyncWhenCreateALessonStudentGivenAnStudentThatIsAlreadyThere()
        {
            var mockLessonStudentRepository = GetDefaultILessonStudentRepositoryInstance();
            var mockLessonRepository        = GetDefaultILessonRepositoryInstance();
            var mockStudentRepository       = GetDefaultIStudentRepositoryInstance();
            var mockUnitOfWork = GetDefaultIUnitOfWorkInstance();



            //LESSON TYPE
            LessonType lessonType = new LessonType();

            lessonType.Id               = 1;
            lessonType.Lessons          = new List <Lesson>();
            lessonType.StudentsQuantity = 2;

            //LESSON
            Lesson lesson = new Lesson();

            lesson.Id           = 1;
            lesson.Vacants      = 2;
            lesson.LessonType   = lessonType;
            lesson.LessonTypeId = lessonType.Id;


            lessonType.Lessons.Add(lesson);

            LessonStudent lessonStudent = new LessonStudent();

            lessonStudent.LessonId  = 1;
            lessonStudent.StudentId = 104;


            //STUDENT
            Student student = new Student();

            student.Id            = 104;
            lessonStudent.Lesson  = lesson;
            lessonStudent.Student = student;



            mockStudentRepository.Setup(r => r.FindById(student.Id))
            .Returns(Task.FromResult <Student>(student));
            mockLessonRepository.Setup(r => r.FindById(lesson.Id))
            .Returns(Task.FromResult <Lesson>(lesson));
            mockLessonStudentRepository.Setup(r => r.FindById(lessonStudent.LessonId, lessonStudent.StudentId))
            .Returns(Task.FromResult <LessonStudent>(lessonStudent));
            mockLessonStudentRepository.Setup(r => r.AddAsync(lessonStudent))
            .Returns(Task.FromResult <LessonStudent>(lessonStudent));
            mockLessonStudentRepository.Setup(r => r.ExistsByLessonIdAndStudentId(lessonStudent.LessonId, lessonStudent.StudentId))
            .Returns(Task.FromResult <LessonStudent>(lessonStudent));
            var service = new LessonStudentService(mockLessonStudentRepository.Object, mockUnitOfWork.Object, mockLessonRepository.Object, mockStudentRepository.Object);
            LessonStudentResponse result = await service.SaveAsync(lessonStudent);

            var message = result.Message;

            message.Should().Be("You are already part of this lesson");
        }
Esempio n. 3
0
        public async Task AssignLessonStudent(int lessonId, int studentId, LessonStudent ls)
        {
            LessonStudent lessonStudent = await FindById(lessonId, studentId);

            if (lessonStudent == null)
            {
                lessonStudent = ls;
                await AddAsync(lessonStudent);
            }
        }
Esempio n. 4
0
        public async Task AsyncWhenCreateALessonStudentWhenStudentIsNotFound()
        {
            var mockLessonStudentRepository = GetDefaultILessonStudentRepositoryInstance();
            var mockLessonRepository        = GetDefaultILessonRepositoryInstance();
            var mockStudentRepository       = GetDefaultIStudentRepositoryInstance();
            var mockUnitOfWork = GetDefaultIUnitOfWorkInstance();


            //LESSON TYPE
            LessonType lessonType = new LessonType();

            lessonType.Id               = 1;
            lessonType.Lessons          = new List <Lesson>();
            lessonType.StudentsQuantity = 2;

            //LESSON
            Lesson lesson = new Lesson();

            lesson.Id           = 1;
            lesson.Vacants      = 2;
            lesson.LessonType   = lessonType;
            lesson.LessonTypeId = lessonType.Id;


            lessonType.Lessons.Add(lesson);

            LessonStudent lessonStudent = new LessonStudent();

            lessonStudent.LessonId  = 1;
            lessonStudent.StudentId = 104;


            mockLessonRepository.Setup(r => r.FindById(lesson.Id))
            .Returns(Task.FromResult <Lesson>(lesson));
            mockLessonStudentRepository.Setup(r => r.FindById(lessonStudent.LessonId, lessonStudent.StudentId))
            .Returns(Task.FromResult <LessonStudent>(lessonStudent));
            mockLessonStudentRepository.Setup(r => r.AddAsync(lessonStudent))
            .Returns(Task.FromResult <LessonStudent>(lessonStudent));

            var service = new LessonStudentService(mockLessonStudentRepository.Object, mockUnitOfWork.Object, mockLessonRepository.Object, mockStudentRepository.Object);
            LessonStudentResponse result = await service.SaveAsync(lessonStudent);

            var message = result.Message;

            message.Should().Be("Student not found");
        }
Esempio n. 5
0
        public async Task WhenTheStudentSignsUpForTheSecondTimeForThisLesson()
        {
            _lessonStudent = new LessonStudent();

            _lessonStudent.StudentId = _student.Id;
            _lessonStudent.Student   = _student;
            _lessonStudent.LessonId  = _lesson.Id;
            _lessonStudent.Lesson    = _lesson;
            _lessonStudentRepository = new Mock <ILessonStudentRepository>();


            _lessonStudentRepository.Setup(r => r.ExistsByLessonIdAndStudentId(_lessonStudent.LessonId, _lessonStudent.StudentId))
            .Returns(Task.FromResult <LessonStudent>(_lessonStudent));

            _lessonStudentService = new LessonStudentService(_lessonStudentRepository.Object, GetDefaultIUnitOfWorkInstance().Object,
                                                             _lessonRepository.Object, _studentRepository.Object);

            _secondResponse = await _lessonStudentService.SaveAsync(_lessonStudent);
        }
Esempio n. 6
0
        public async Task WhenTheStudentSignsUpForTheALessonThatIsFull()
        {
            _lessonStudent = new LessonStudent();

            _lessonStudent.StudentId = _student.Id;
            _lessonStudent.Student   = _student;
            _lessonStudent.LessonId  = _lesson.Id;
            _lessonStudent.Lesson    = _lesson;
            _lessonStudentRepository = new Mock <ILessonStudentRepository>();
            _lesson.Contador         = 2;
            _lessonRepository        = new Mock <ILessonRepository>();

            _lessonRepository.Setup(r => r.FindById(_lesson.Id))
            .Returns(Task.FromResult <Lesson>(_lesson));


            _lessonStudentService = new LessonStudentService(_lessonStudentRepository.Object, GetDefaultIUnitOfWorkInstance().Object,
                                                             _lessonRepository.Object, _studentRepository.Object);

            _thirdResponse = await _lessonStudentService.SaveAsync(_lessonStudent);
        }
Esempio n. 7
0
        public async Task <LessonStudentResponse> SaveAsync(LessonStudent lessonStudent)
        {
            var existingLesson = await _lessonRepository.FindById(lessonStudent.LessonId);

            if (existingLesson == null)
            {
                return(new LessonStudentResponse("Lesson not found"));
            }

            var existingStudent = await _studentRepository.FindById(lessonStudent.StudentId);

            Console.WriteLine(existingLesson.LessonStudents.Count);
            if (existingLesson.Contador == existingLesson.LessonType.StudentsQuantity)
            {
                return(new LessonStudentResponse("This lesson is full"));
            }

            if (existingStudent == null)
            {
                return(new LessonStudentResponse("Student not found"));
            }

            if (_lessonStudentRepository.ExistsByLessonIdAndStudentId(lessonStudent.LessonId, lessonStudent.StudentId).Result != null)
            {
                return(new LessonStudentResponse("You are already part of this lesson"));
            }

            try
            {
                await _lessonStudentRepository.AddAsync(lessonStudent);

                await _unitOfWork.CompleteAsync();

                return(new LessonStudentResponse(lessonStudent));
            }
            catch (Exception ex)
            {
                return(new LessonStudentResponse($"An error ocurred while saving the lessonStudent: {ex.Message}"));
            }
        }
        public void GivenTheTutorWantsToSeeTheAverageScoreForACourseAndTypeOfCourse(int p0, int p1, int p2)
        {
            _lessonRepository = GetDefaultILessonRepositoryInstance();

            List <Lesson> lessons = new List <Lesson>();
            Lesson        lesson  = new Lesson();

            lesson.Id = 1;
            //Lesson lesson1 = new Lesson();
            //lesson1.Id = 2;
            //Lesson lesson2 = new Lesson();
            //lesson2.Id = 3;
            lessons.Add(lesson);
            //lessons.Add(lesson1);
            //lessons.Add(lesson2);
            iLessons = lessons as IEnumerable <Lesson>;
            _lessonRepository.Setup(r => r.ListByTutorIdAndCourseIdAndLessonTypeIdAsync(p0, p1, p2)).
            Returns(Task.FromResult <IEnumerable <Lesson> >(iLessons));

            List <LessonStudent> lessonStudents = new List <LessonStudent>();
            LessonStudent        lessonStudent  = new LessonStudent();

            lessonStudent.LessonId      = lesson.Id;
            lessonStudent.Qualification = 3;
            LessonStudent lessonStudent1 = new LessonStudent();

            lessonStudent.LessonId       = lesson.Id;
            lessonStudent1.Qualification = 5;

            lessonStudents.Add(lessonStudent);
            lessonStudents.Add(lessonStudent1);

            iLessonStudents = lessonStudents as IEnumerable <LessonStudent>;

            _lessonStudentRepository = GetDefaultILessonStudentRepositoryInstance();
            _lessonStudentRepository.Setup(r => r.ListStudentsByLessonIdAsync(lesson.Id))
            .Returns(Task.FromResult <IEnumerable <LessonStudent> >(iLessonStudents));
        }
Esempio n. 9
0
        //Business rule #3
        public async Task <LessonStudentResponse> SaveFeedbackAsync(int lessonId, int studentId, LessonStudent lessonStudent)
        {
            var existingLessonStudent = await _lessonStudentRepository.FindById(lessonId, studentId);

            if (existingLessonStudent == null)
            {
                return(new LessonStudentResponse("LessonStudent not found"));
            }

            if (lessonStudent.Qualification == 0)
            {
                return(new LessonStudentResponse("It’s necessary to assign number of starts"));
            }
            existingLessonStudent.Qualification = lessonStudent.Qualification;

            existingLessonStudent.Comment = lessonStudent.Comment;

            if (lessonStudent.Complaint == true)
            {
                if (lessonStudent.Comment == "" || lessonStudent.Comment == "-")
                {
                    return(new LessonStudentResponse("Write a comment"));
                }
            }
            existingLessonStudent.Complaint = lessonStudent.Complaint;

            try
            {
                _lessonStudentRepository.Update(existingLessonStudent);
                await _unitOfWork.CompleteAsync();

                return(new LessonStudentResponse(existingLessonStudent));
            }
            catch (Exception ex)
            {
                return(new LessonStudentResponse($"An error ocurred while updating the lessonStudent: {ex.Message}"));
            }
        }
Esempio n. 10
0
        public async Task <LessonStudentResponse> UpdateAsync(int lessonId, int studentId, LessonStudent lessonStudent)
        {
            var existingLessonStudent = await _lessonStudentRepository.FindById(lessonId, studentId);

            if (existingLessonStudent == null)
            {
                return(new LessonStudentResponse("LessonStudent not found"));
            }

            existingLessonStudent.LessonId = lessonStudent.LessonId;

            try
            {
                _lessonStudentRepository.Update(existingLessonStudent);
                await _unitOfWork.CompleteAsync();

                return(new LessonStudentResponse(existingLessonStudent));
            }
            catch (Exception ex)
            {
                return(new LessonStudentResponse($"An error ocurred while updating the lessonStudent: {ex.Message}"));
            }
        }
Esempio n. 11
0
 public async Task AddAsync(LessonStudent lessonStudent)
 {
     await _context.LessonStudents.AddAsync(lessonStudent);
 }
Esempio n. 12
0
 public void Update(LessonStudent lessonStudent)
 {
     _context.LessonStudents.Update(lessonStudent);
 }
Esempio n. 13
0
 public void Remove(LessonStudent lessonStudent)
 {
     _context.LessonStudents.Remove(lessonStudent);
 }