private void AddGroupBth_Click(object sender, RoutedEventArgs e)
        {

            if (groupID == 0 && GroupTitleTxt.Text != "")
            {
                try
                {
                    StudentGroup group = new StudentGroup();
                    group.GroupTitle = GroupTitleTxt.Text;
                    group.GroupDesc = GroupDescTxt.Text;
                    CourseData.db.StudentGroup.InsertOnSubmit(group);
                    CourseData.db.SubmitChanges();
                    Clear();
                    LoadData();
                    GroupField.Visibility = Visibility.Hidden;
                    MessageBox.Show("Added Group");
                    ListGroup.IsEnabled = true;
                    AddButtun.IsEnabled = true;
                    DeleteButton.IsEnabled = true;
                    
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.ToString());
                }
            }
            else
            {
                MessageBox.Show("Group Title Can't Empty");
            }
        }
Exemple #2
0
 public Discipline(string name, StudentGroup studentGroup,
     int attestation, int auditoriumHours, int lectureHours, int practicalHours)
 {
     Name = name;
     StudentGroup = studentGroup;
     Attestation = attestation;
     AuditoriumHours = auditoriumHours;
     LectureHours = lectureHours;
     PracticalHours = practicalHours;
 }
 // Add Stuedents to Group
 public async Task AddStudentToGroup(StudentGroup studentGroup)
 {
     _context.StudentsGroups.Add(studentGroup);
     await _context.SaveChangesAsync();
 }
 public ConsoleStudentGroupLogger(StudentGroup group)
 {
     group.SubscribeLogger(this);
 }
Exemple #5
0
        //methods
        public Schedule GetSchedule(string path)
        {
            string[,] excel = this.getValuesFromExcel(path);
            var plan = new Schedule();

            plan.Name = excel[0, 0];
            int bufor_wiersz  = excel.GetLength(0);
            int bufor_kolumna = excel.GetLength(1);

            var dzien = new ScheduleDayOfWeek();

            dzien.Day = SubjectTimeResolver.Instance.GetDayOfWeekFromString(excel[1, 0]);

            var grupa = new StudentGroup();

            for (int wiersz = 1; wiersz < bufor_wiersz; wiersz++)
            {
                Subject aktualnyPrzedmiot = new Subject();

                for (int kolumna = 0; kolumna < bufor_kolumna; kolumna++)
                {
                    if (kolumna == 0 && (!String.IsNullOrEmpty(excel[wiersz, kolumna]) || excel[wiersz, kolumna] == plan.Name))
                    {
                        if (wiersz + 1 == bufor_wiersz)
                        {
                            // skonczył sie ostatni dzień
                            plan.DaysOfWeek.Add(dzien);
                        }
                        else if (SubjectTimeResolver.Instance.IsValidDay(excel[wiersz + 1, kolumna]) && dzien.Day != SubjectTimeResolver.Instance.GetDayOfWeekFromString(excel[wiersz + 1, kolumna]))
                        {
                            // skonczył się aktualny dzień i zaczyna nowy
                            plan.DaysOfWeek.Add(dzien);
                            dzien     = new ScheduleDayOfWeek();
                            dzien.Day = SubjectTimeResolver.Instance.GetDayOfWeekFromString(excel[wiersz + 1, kolumna]);
                        }
                    }
                    else if (kolumna == 1 && excel[wiersz, kolumna] != "Grupa")
                    {
                        grupa.Name = excel[wiersz, kolumna];
                    }
                    else
                    {
                        if (!String.IsNullOrEmpty(excel[wiersz, kolumna]))// jest coś w komórce
                        {
                            if (excel[wiersz, kolumna] != aktualnyPrzedmiot.Name)
                            {
                                // zaczyna sie nowy przedmiot i konczy stary lub po prostu zaczyna sie przedmiot
                                if (!String.IsNullOrEmpty(aktualnyPrzedmiot.Name))
                                {
                                    aktualnyPrzedmiot.TimeEnds = Tools.SubjectTimeResolver.Instance.GetMinutesFromCell(kolumna);
                                    grupa.Subjects.Add(aktualnyPrzedmiot);
                                }
                                aktualnyPrzedmiot            = new Subject();
                                aktualnyPrzedmiot.TimeStarts = Tools.SubjectTimeResolver.Instance.GetMinutesFromCell(kolumna);
                                aktualnyPrzedmiot.Name       = excel[wiersz, kolumna];
                            }
                            else
                            {
                                // trwa stary
                            }
                        }
                        else // komórka jest pusta
                        {
                            if (!String.IsNullOrEmpty(aktualnyPrzedmiot.Name)) // aktualny przedmiot nie jest pusty
                            {
                                // skonczyl sie aktualny przedmiot
                                aktualnyPrzedmiot.TimeEnds = Tools.SubjectTimeResolver.Instance.GetMinutesFromCell(kolumna);
                                grupa.Subjects.Add(aktualnyPrzedmiot);
                                aktualnyPrzedmiot = new Subject();
                            }
                        }
                    }
                }
                dzien.StudentGroups.Add(grupa);
                grupa = new StudentGroup();
            }
            return(plan);
        }
Exemple #6
0
        private async Task <bool> CreationIsAllowed(int teacherId, int studentId)
        {
            StudentGroup group = await groupStorage.StudentGroupGetByUserId(studentId);

            return(await groupStorage.GetBelongnessOfGroupToTheTeacher(Convert.ToInt32(group.GroupId), teacherId));
        }
        public async Task CeateLessonAsync()
        {
            //Arrange
            Theme theme = new Theme
            {
                Name = "ExampleName",
                Id   = 5
            };

            Mentor mentor = new Mentor
            {
                Id = 2
            };

            StudentGroup studentGroup = new StudentGroup
            {
                Id = 3
            };

            List <VisitDto> visitsDto = new List <VisitDto>()
            {
            };
            List <Visit> visits = new List <Visit>()
            {
            };

            var createdLesson = new LessonDto()
            {
                Id             = 7,
                ThemeName      = "ExampleName",
                MentorId       = 2,
                StudentGroupId = 3,
                LessonDate     = DateTime.Parse("2020-11-18T15:00:00.384Z"),
                LessonVisits   = visitsDto
            };

            var createLessonDto = new CreateLessonDto
            {
                ThemeName      = "ExampleName",
                MentorId       = 2,
                StudentGroupId = 3,
                LessonDate     = DateTime.Parse("2020-11-18T15:00:00.384Z"),
                LessonVisits   = visitsDto
            };

            var lessonRepositoryMock = new Mock <ILessonRepository>();

            lessonRepositoryMock.Setup(x => x.Add(It.IsAny <Lesson>()))
            .Callback <Lesson>(x => {
                x.Id             = 7;
                x.LessonDate     = DateTime.Parse("2020-11-18T15:00:00.384Z");
                x.MentorId       = 2;
                x.StudentGroupId = 3;
                x.ThemeId        = 5;
                x.Mentor         = mentor;
                x.StudentGroup   = studentGroup;
                x.Theme          = theme;
                x.Visits         = visits;
            });

            var themeRepositoryMock = new Mock <IThemeRepository>();

            themeRepositoryMock.Setup(x => x.Add(It.IsAny <Theme>()))
            .Callback <Theme>(x =>
            {
                x.Id   = 5;
                x.Name = "ExampleName";
            });

            _unitOfWorkMock.Setup(x => x.LessonRepository).Returns(lessonRepositoryMock.Object);
            _unitOfWorkMock.Setup(x => x.ThemeRepository).Returns(themeRepositoryMock.Object);

            var lessonService = new LessonService(
                _unitOfWorkMock.Object,
                _mapper
                );

            //Act
            var result = await lessonService.CreateLessonAsync(createLessonDto);

            //Assert
            Assert.NotNull(result);

            Assert.Equal(createdLesson.Id, result.Id);
            Assert.Equal(createdLesson.LessonDate, result.LessonDate);
            Assert.Equal(createdLesson.LessonVisits.Count, result.LessonVisits.Count);

            for (int i = 0; i < result.LessonVisits?.Count; i++)
            {
                Assert.Equal(createdLesson.LessonVisits[i]?.Comment, result.LessonVisits[i]?.Comment);
                Assert.Equal(createdLesson.LessonVisits[i]?.Presence, result.LessonVisits[i]?.Presence);
                Assert.Equal(createdLesson.LessonVisits[i]?.StudentId, result.LessonVisits[i]?.StudentId);
                Assert.Equal(createdLesson.LessonVisits[i]?.StudentMark, result.LessonVisits[i]?.StudentMark);
            }

            Assert.Equal(createdLesson.MentorId, result.MentorId);
            Assert.Equal(createdLesson.StudentGroupId, result.StudentGroupId);
            Assert.Equal(createdLesson.ThemeName, result.ThemeName);
        }
Exemple #8
0
 public Task <int> DeleteItemAsync(StudentGroup item)
 {
     return(database.DeleteAsync(item));
 }
Exemple #9
0
 public GroupsInFaculty(StudentGroup group, Faculty faculty)
 {
     StudentGroup = group;
     Faculty = faculty;
 }
Exemple #10
0
        public async Task <Result <List <StudentGroupFile> > > ImportFileAsync(IFormFile uploadedFile)
        {
            string path = "";
            List <StudentGroupFile> importedGroups = new List <StudentGroupFile>();

            if (uploadedFile != null)
            {
                path = await CreateFile(uploadedFile);

                var book        = new XLWorkbook(path);
                var groupsSheet = book.Worksheet("Groups");

                Type studentGroupType = typeof(StudentGroupFile);
                char charPointer      = 'A';
                int  rowCounter       = 2;

                var properties = studentGroupType.GetProperties();
                foreach (PropertyInfo property in properties)
                {
                    if (property.Name != Convert.ToString(groupsSheet.Cell($"{charPointer}1").Value))
                    {
                        return(Result <List <StudentGroupFile> > .GetError(ErrorCode.ValidationError,
                                                                           "The format of the downloaded file is not suitable."
                                                                           + "Check headers in the file."));
                    }
                    charPointer++;
                }

                while (!IsEndOfFile(rowCounter, groupsSheet))
                {
                    try
                    {
                        StudentGroupFile fileLine = new StudentGroupFile
                        {
                            CourseId  = groupsSheet.Cell($"B{rowCounter}").Value.ToString(),
                            Name      = groupsSheet.Cell($"C{rowCounter}").Value.ToString(),
                            StartDate = Convert
                                        .ToDateTime(groupsSheet.Cell($"D{rowCounter}").Value),
                            FinishDate = Convert
                                         .ToDateTime(groupsSheet.Cell($"E{rowCounter}").Value)
                        };

                        await IsValueValid(fileLine, rowCounter);

                        StudentGroup group = new StudentGroup
                        {
                            CourseId   = Convert.ToInt32(fileLine.CourseId),
                            Name       = fileLine.Name,
                            StartDate  = fileLine.StartDate,
                            FinishDate = fileLine.FinishDate,
                        };

                        importedGroups.Add(fileLine);
                        _unitOfWork.StudentGroupRepository.Add(group);
                        rowCounter++;
                    }
                    catch (FormatException ex)
                    {
                        _unitOfWork.Rollback();

                        return(Result <List <StudentGroupFile> > .GetError(ErrorCode.ValidationError,
                                                                           "The format of the inputed data is incorrect.\n" + ex.Message));
                    }
                    catch (DbUpdateException ex)
                    {
                        _unitOfWork.Rollback();

                        return(Result <List <StudentGroupFile> >
                               .GetError(ErrorCode.ValidationError,
                                         "Inputed data is incorrect.\n" + ex.Message));
                    }
                }
            }
            await _unitOfWork.CommitAsync();

            Array.ForEach(Directory.GetFiles(Path.Combine(Directory.GetCurrentDirectory(), "Upload\\files")), File.Delete);

            return(Result <List <StudentGroupFile> >
                   .GetSuccess(_mapper.Map <List <StudentGroupFile> >(importedGroups)));
        }
Exemple #11
0
        private University Convert()
        {
            var studentList   = new HashSet <Student>(new CustomComparer());
            var activeStudies = new HashSet <ActiveStudies>();

            foreach (var row in ArrayPersonList)
            {
                Student student      = null;
                string  wrongStudent = "";

                if (row.Length == 9 && !row.Any(item => String.Equals(item, "")))
                {
                    student = new Student(row[0], row[1], row[2], row[3], row[4], row[5], row[6], row[7], row[8]);

                    Boolean exists = false;
                    foreach (var activeStudy in activeStudies)
                    {
                        if (String.Equals(activeStudy.Name, row[2]))
                        {
                            exists = true;
                            activeStudy.NumberOfStudents++;
                        }
                    }
                    if (!exists)
                    {
                        activeStudies.Add(new ActiveStudies(row[2], 1));
                    }

                    if (!studentList.Add(student))
                    {
                        foreach (var item in row)
                        {
                            wrongStudent += $" {item}";
                        }
                        using (System.IO.StreamWriter file =
                                   new System.IO.StreamWriter(this.LogFile, true)){
                            file.WriteLine($"ERR: Duplicate student:  {wrongStudent}");
                        }
                        continue;
                    }
                }
                else
                {
                    foreach (var item in row)
                    {
                        wrongStudent += $" {item}";
                    }
                    using (System.IO.StreamWriter file =
                               new System.IO.StreamWriter(this.LogFile, true)){
                        file.WriteLine($"ERR: There are missing values in:  {wrongStudent}");
                    }
                }
            }
            var activeStudiesGroup = new ActiveStudiesGroup(activeStudies);
            var studentGroup       = new StudentGroup(studentList);

            Console.WriteLine($"Converted {studentList.Count()} students");
            var university = new University(studentGroup, activeStudiesGroup);

            return(university);
            //open file writer and create the file
        }
Exemple #12
0
        public async Task UpdateStudentGroup()
        {
            //Arrange

            long notExistingGroupId = -10;

            var updateStudentGroupDto = new UpdateStudentGroupDto()
            {
                Name       = "new_test_name",
                CourseId   = 2,
                StartDate  = DateTime.Now,
                FinishDate = DateTime.Now.AddMonths(3),
                StudentIds = new List <long>(),
                MentorIds  = new List <long>()
            };

            var existingNameStudentGroupDto = new UpdateStudentGroupDto()
            {
                Name       = "Test_name",
                CourseId   = 4,
                StartDate  = DateTime.Now,
                FinishDate = DateTime.Now.AddMonths(3),
                StudentIds = new List <long>(),
                MentorIds  = new List <long>()
            };

            var existingStudentGroup = new StudentGroup()
            {
                Id         = 10,
                Name       = "Test_name",
                CourseId   = 3,
                StartDate  = DateTime.Now.AddMonths(3),
                FinishDate = DateTime.Now.AddMonths(6),
                StudentsOfStudentGroups = new List <StudentOfStudentGroup>(),
                MentorsOfStudentGroups  = new List <MentorOfStudentGroup>()
            };

            var existingCourse = new Course()
            {
                Id   = 2,
                Name = "AAA"
            };

            var studentGroupRepositoryMock = new Mock <IStudentGroupRepository>();
            var studentsRepositoryMock     = new Mock <IStudentRepository>();
            var mentorsRepositoryMock      = new Mock <IMentorRepository>();
            var courseRepositoryMock       = new Mock <ICourseRepository>();

            studentGroupRepositoryMock.Setup(x => x.GetByIdAsync(existingStudentGroup.Id))
            .ReturnsAsync(existingStudentGroup);

            studentGroupRepositoryMock.Setup(x => x.GetByIdAsync(notExistingGroupId))
            .ReturnsAsync((StudentGroup)null);

            studentGroupRepositoryMock.Setup(x => x.IsGroupNameExistAsync(updateStudentGroupDto.Name))
            .ReturnsAsync(false);

            studentGroupRepositoryMock.Setup(x => x.IsGroupNameExistAsync(existingNameStudentGroupDto.Name))
            .ReturnsAsync(true);

            courseRepositoryMock.Setup(x => x.GetByIdAsync(updateStudentGroupDto.CourseId))
            .ReturnsAsync(existingCourse);

            studentGroupRepositoryMock.Setup(x => x.UpdateManyToMany(It.IsAny <IList <StudentOfStudentGroup> >(),
                                                                     It.IsAny <IList <StudentOfStudentGroup> >()));

            mentorsRepositoryMock.Setup(x => x.UpdateMentorGroups(It.IsAny <IList <MentorOfStudentGroup> >(),
                                                                  It.IsAny <IList <MentorOfStudentGroup> >()));

            _unitOfWorkMock.Setup(x => x.StudentGroupRepository).Returns(studentGroupRepositoryMock.Object);
            _unitOfWorkMock.Setup(x => x.StudentRepository).Returns(studentsRepositoryMock.Object);
            _unitOfWorkMock.Setup(x => x.MentorRepository).Returns(mentorsRepositoryMock.Object);
            _unitOfWorkMock.Setup(x => x.CourseRepository).Returns(courseRepositoryMock.Object);

            var studentGroupService = new StudentGroupService(
                _unitOfWorkMock.Object,
                _mapper,
                _loggerMock.Object
                );

            //Act

            var successResult = await studentGroupService.UpdateStudentGroupAsync(existingStudentGroup.Id, updateStudentGroupDto);

            var groupNameExistResult = await studentGroupService.UpdateStudentGroupAsync(existingStudentGroup.Id, existingNameStudentGroupDto);

            var groupNotExistResult = await studentGroupService.UpdateStudentGroupAsync(notExistingGroupId, updateStudentGroupDto);

            var nullGroupResult = await studentGroupService.UpdateStudentGroupAsync(existingStudentGroup.Id, null);

            //Assert

            Assert.NotNull(successResult.Data);
            Assert.Equal(successResult.Data.Name, successResult.Data.Name);

            Assert.Equal(ErrorCode.UnprocessableEntity, groupNameExistResult.Error.Code);

            Assert.Equal(ErrorCode.NotFound, groupNotExistResult.Error.Code);

            Assert.Equal(ErrorCode.ValidationError, nullGroupResult.Error.Code);
        }
Exemple #13
0
 public StudentsInGroups(Student student, StudentGroup studentGroup)
 {
     Student = student;
     StudentGroup = studentGroup;
 }
Exemple #14
0
        public ActionResult AddClass(int lessonId, int classId)
        {
            //1. Create new ClassLesson
            var les = db.Lessons.Find(lessonId);
            var cls = db.Classes.Find(classId);

            if (les != null && cls != null)
            {
                var newClsLes = new ClassLesson
                {
                    Class  = cls,
                    Lesson = les
                };

                db.ClassLessons.Add(newClsLes);

                var students = db.Students
                               .Where(s => s.Class.Id == classId)
                               .ToList();

                //2. Create StudentLesson for all students in the class
                foreach (var stu in students)
                {
                    var newStuLes = new StudentLesson
                    {
                        Student = stu,
                        Lesson  = les
                    };

                    db.StudentLessons.Add(newStuLes);

                    //3. Create StudentGroup for all students in the class
                    var groups = db.Groups
                                 .Where(g => g.Lesson.Id == lessonId)
                                 .ToList();

                    foreach (var grp in groups)
                    {
                        var newStuGrp = new StudentGroup
                        {
                            Student = stu,
                            Group   = grp
                        };

                        db.StudentGroups.Add(newStuGrp);

                        //4. Create StudentVocabulary for all students in the class
                        var vocabularies = db.Vocabularies
                                           .Where(v => v.Group.Id == grp.Id)
                                           .ToList();

                        foreach (var voca in vocabularies)
                        {
                            var newStuVocabulary = new StudentVocabulary
                            {
                                Student     = stu,
                                Vocabulary  = voca,
                                UpdatedDate = DateTime.Now
                            };

                            db.StudentVocabularies.Add(newStuVocabulary);
                        }
                    }
                }



                db.SaveChanges();
            }

            return(RedirectToAction("Details", new { Id = lessonId }));
        }
Exemple #15
0
 public StudentsInGroups(Student student, StudentGroup studentGroup)
 {
     Student      = student;
     StudentGroup = studentGroup;
 }
Exemple #16
0
 public ComboboxGroupItem(string Text, StudentGroup Value)
 {
     this.Text  = Text;
     this.Value = Value;
 }
        public async Task UpdateLessonAsync()
        {
            //Arrange
            Theme theme = new Theme
            {
                Name = "ExampleName",
                Id   = 5
            };

            Mentor mentor = new Mentor
            {
                Id = 2
            };

            StudentGroup studentGroup = new StudentGroup
            {
                Id = 3
            };

            List <VisitDto> visitsDto = new List <VisitDto>()
            {
            };

            var foundLesson = new Lesson()
            {
                Id             = 7,
                MentorId       = 2,
                StudentGroupId = 3,
                ThemeId        = 5,
                Mentor         = mentor,
                StudentGroup   = studentGroup,
                Theme          = theme,
                Visits         = { }
            };

            var updateLessonDto = new UpdateLessonDto
            {
                ThemeName    = null,
                LessonDate   = DateTime.Parse("2020-11-18T15:30:00.384Z"),
                LessonVisits = null
            };

            var foundLessonDto = new LessonDto()
            {
                Id             = 7,
                ThemeName      = "ExampleName",
                MentorId       = 2,
                StudentGroupId = 3,
                LessonDate     = DateTime.Parse("2020-11-18T15:00:00.384Z"),
                LessonVisits   = null
            };

            var updatedLesson = new LessonDto()
            {
                Id             = 7,
                ThemeName      = "ExampleName",
                MentorId       = 2,
                StudentGroupId = 3,
                LessonDate     = DateTime.Parse("2020-11-18T15:30:00.384Z"),
                LessonVisits   = visitsDto
            };

            _unitOfWorkMock.Setup(x => x.LessonRepository.GetByIdAsync(7))
            .ReturnsAsync(foundLesson);

            var lessonService = new LessonService(
                _unitOfWorkMock.Object,
                _mapper
                );

            //Act
            var result = await lessonService.UpdateLessonAsync(7, updateLessonDto);

            //Assert
            Assert.NotNull(result);

            Assert.Equal(updatedLesson.Id, result.Id);
            Assert.Equal(updatedLesson.LessonDate, result.LessonDate);
            Assert.Equal(updatedLesson.LessonVisits, result.LessonVisits);
            Assert.Equal(updatedLesson.MentorId, result.MentorId);
            Assert.Equal(updatedLesson.StudentGroupId, result.StudentGroupId);
            Assert.Equal(updatedLesson.ThemeName, result.ThemeName);
        }
 public StudentsInGroups(int studentsInGroups, Student student, StudentGroup studentGroup)
 {
     StudentsInGroupsId = studentsInGroups;
     Student = student;
     StudentGroup = studentGroup;
 }
Exemple #19
0
 private void GroupSelected(StudentGroup group)
 {
     Subjects      = group.Subjects.ToObservableCollection();
     selectedGroup = group;
 }