예제 #1
0
        public void Init()
        {
            var TestDataModel = new TestDataModel();
            var list          = new SubjectsList(TestDataModel.MockDataModel.Object);

            test = list.Create();
        }
예제 #2
0
        /// <summary>
        /// Show the subjects that the user selected and al subjects that user doesn't has
        /// </summary>
        /// <param name="message"></param>
        /// <returns>The view with the user subjects</returns>
        public IActionResult MySubjects(string message)
        {
            if (!HttpContext.User.Identity.IsAuthenticated)
            {
                return(RedirectToAction("Logout", "Home"));
            }
            else
            {
                int id = Int32.Parse(HttpContext.User.Claims.FirstOrDefault(c => c.Type == "ID")?.Value);
                List <AsignaturePerTeacher> mySubjects = db.AsignaturesPerTeacher.Where(a => a.ID_Teacher == id).ToList();
                SubjectsList subjects = new SubjectsList();
                //Take the selected subjects
                foreach (var item in mySubjects)
                {
                    subjects.SubjectsPerTeacher.Add(db.Subjects.First(x => x.ID == item.ID_Subject));
                }
                List <Subject> allSubjects = db.Subjects.ToList();
Erased:
                //Take the avaiable subjects
                foreach (var item in allSubjects)
                {
                    foreach (var item2 in subjects.SubjectsPerTeacher)
                    {
                        if (item2.ID == item.ID)
                        {
                            allSubjects.Remove(item);
                            goto Erased;
                        }
                    }
                }
                subjects.SubjectsAvaiable = allSubjects;
                return(View(subjects));
            }
        }
예제 #3
0
 public void Save(string fileName)
 {
     using (StreamWriter fileStream = new StreamWriter(fileName, false, System.Text.Encoding.UTF8))
     {
         fileStream.WriteLine("CPF");
         fileStream.WriteLine(StipendBox.Text);
         fileStream.WriteLine(Start_Period.ToString());
         fileStream.WriteLine(Finish_Period.ToString());
         string subjectString = "";
         SubjectsList.ForEach(subj =>
         {
             subjectString += (subj.ToString() + " ");
         });
         fileStream.WriteLine(subjectString);
         StudentList.ForEach(stud =>
         {
             fileStream.Write(stud.IdStudent.ToString() + " - ");
             string assessmentString = "";
             foreach (KeyValuePair <int, int> entry in stud.AssessmentsList)
             {
                 assessmentString += (entry.Key.ToString() + ":" + entry.Value.ToString() + " ");
             }
             fileStream.WriteLine(assessmentString);
         });
     }
 }
예제 #4
0
 public void AddSubject(int subject)
 {
     if (!SubjectsList.Contains(subject))
     {
         SubjectsList.Add(subject);
         StudentList.ForEach(stud =>
         {
             stud.AssessmentsList.Add(subject, 0);
         });
     }
     UpdateTable();
 }
        private void kalendar_ItemDeleted(object sender, ItemEventArgs e)
        {
            MyTermin deletedTermin        = (MyTermin)e.Item;
            Subject  deletedTerminSubject = deletedTermin.ForSubject;

            TerminHandler.Instance.RemoveTermin(deletedTermin);
            SubjectHandler.Instance.ChangeUnscheduledTermins(deletedTerminSubject.Id, false);

            (Window.GetWindow(this) as MainWindow).GlobalnaShema.globalCalendar.Schedule.Items.Remove(deletedTermin);

            UpdateSubjectRow(deletedTerminSubject);

            SubjectsList.UnselectAll();
        }
        public FetInputGenerator(DataModel model)
        {
            Model = model;

            // Initialize list objects
            DaysList             = new DaysList(Model);
            HoursList            = new HoursList(Model);
            TeachersList         = new TeachersList(Model);
            SubjectsList         = new SubjectsList(Model);
            ActivitiesList       = new ActivitiesList(Model);
            YearsList            = new YearsList(Model);
            TimeConstraintsList  = new TimeConstraintsList(Model);
            SpaceConstraintsList = new SpaceConstraintsList(Model);
            RoomsList            = new RoomsList(Model);
        }
        /// <summary>
        /// Mijenjamo boju i ToolTip reda u listi predmeta u skladu sa brojem NEraspoređenih termina.
        /// </summary>
        /// <param name="subject"></param>
        private void UpdateSubjectRow(Subject subject)
        {
            DataGridRow row = SubjectsList.ItemContainerGenerator.ContainerFromItem(subject) as DataGridRow;

            if (subject.UnscheduledTermins < 1)
            {
                row.Background = Brushes.PaleGreen;
                row.ToolTip    = "Predmet " + subject.Name + " je raspoređen.";
            }
            else
            {
                row.Background = Brushes.PaleGoldenrod; // black'n gold baby :P
                row.ToolTip    = "Predmet " + subject.Name + " ima neraspoređene termine.";
            }
            SubjectsList.UnselectAll();
        }
        private void UserControl_IsVisibleChanged(object sender, DependencyPropertyChangedEventArgs e)
        {
            Console.WriteLine("ScheduleScheme IsVisibleChanged + " + ((bool)e.NewValue));

            if (IsVisible == true)
            {
                SubjectsList.Focus();
            }
            else
            {
                this.ButtonZatvori.Focus();
            }

            //if ((bool)e.NewValue)
            //    MainWindowParent.DataLoading = true;
            //else
            //    MainWindowParent.DataLoading = false; // može samo MainWinPar.DataLoading = (bool)e.NewValue...
        }
예제 #9
0
 public void RemoveSubject(int subject, bool update = true)
 {
     if (SubjectsList.Contains(subject))
     {
         SubjectsList.Remove(subject);
         StudentList.ForEach(stud =>
         {
             if (stud.AssessmentsList.ContainsKey(subject))
             {
                 stud.AssessmentsList.Remove(subject);
             }
         });
     }
     if (update)
     {
         UpdateTable();
     }
 }
예제 #10
0
        public void AddStudent(int student)
        {
            bool isSet = false;

            StudentList.ForEach(stud => {
                if (stud.IdStudent == student)
                {
                    isSet = true;
                    return;
                }
            });
            if (!isSet)
            {
                AssessmentsStudent newStudent = new AssessmentsStudent(student);
                SubjectsList.ForEach(subject =>
                {
                    newStudent.AssessmentsList.Add(subject, 0);
                });
                StudentList.Add(newStudent);
            }
            UpdateTable();
        }
예제 #11
0
 public bool Load(string fileName)
 {
     using (StreamReader fileStream = new StreamReader(fileName, System.Text.Encoding.UTF8))
     {
         StudentList.Clear();
         SubjectsList.Clear();
         string checkString = fileStream.ReadLine();
         if (!checkString.Equals("CPF"))
         {
             return(false);
         }
         string stipend = fileStream.ReadLine();
         StipendBox.Text = stipend;
         string startPeriod = fileStream.ReadLine();
         Start_Period            = DateTime.Parse(startPeriod);
         StartPeriodPicker.Value = Start_Period;
         string finishPeriod = fileStream.ReadLine();
         Finish_Period            = DateTime.Parse(finishPeriod);
         FinishPeriodPicker.Value = Finish_Period;
         List <int> subjects = Program.StringInListInt(fileStream.ReadLine(), ' ');
         SubjectsList = subjects;
         while (!fileStream.EndOfStream)
         {
             string student = fileStream.ReadLine();
             GetStudentOfStreamLine(student, out string idStudent, out string assessmentStudent);
             AssessmentsStudent assessmentsStudent = new AssessmentsStudent(Int32.Parse(idStudent));
             List <string>      assessmentsList    = Program.StringInListString(assessmentStudent, ' ');
             assessmentsList.ForEach(assessment =>
             {
                 assessmentsStudent.GetAssessmentOfStreamLine(assessment);
             });
             StudentList.Add(assessmentsStudent);
         }
         UpdateTable();
         return(true);
     }
 }
예제 #12
0
        public void UpdateTable()
        {
            Table.Rows.Clear();
            Table.Columns.Clear();
            Table.CellValueChanged -= UpdateData;
            List <int> removeSubjects = new List <int>();

            SubjectsList.ForEach(subject =>
            {
                Subject subjectInfo = Subjects.GetSubjectByID(subject);
                if (subjectInfo == null)
                {
                    removeSubjects.Add(subject);
                }
            });
            removeSubjects.ForEach(remove =>
            {
                RemoveSubject(remove, false);
            });
            SubjectsList.ForEach(subject => {
                Subject subjectInfo       = Subjects.GetSubjectByID(subject);
                DataGridViewColumn newCol = new DataGridViewColumn()
                {
                    Name         = subjectInfo.Id.ToString(),
                    HeaderText   = subjectInfo.Title,
                    SortMode     = DataGridViewColumnSortMode.NotSortable,
                    CellTemplate = new DataGridViewTextBoxCell()
                };
                Table.Columns.Add(newCol);
            });

            DataGridViewColumn averageAssessmentCol = new DataGridViewColumn
            {
                ReadOnly         = true,
                HeaderText       = "Средняя оценка",
                CellTemplate     = new DataGridViewTextBoxCell(),
                DefaultCellStyle = new DataGridViewCellStyle
                {
                    BackColor = System.Drawing.Color.FromArgb(200, 200, 200)
                }
            };

            Table.Columns.Add(averageAssessmentCol);
            DataGridViewColumn stipendCol = new DataGridViewColumn
            {
                ReadOnly     = true,
                HeaderText   = "Стипендия",
                CellTemplate = new DataGridViewTextBoxCell(),
            };

            Table.Columns.Add(stipendCol);
            List <int> removeStudents = new List <int>();

            StudentList.ForEach(student =>
            {
                Student studentInfo = Students.GetStudentByID(student.IdStudent);
                if (studentInfo == null)
                {
                    removeStudents.Add(student.IdStudent);
                }
            });
            removeStudents.ForEach(remove =>
            {
                RemoveStudent(remove, false);
            });
            StudentList.ForEach(student =>
            {
                Student studentInfo  = Students.GetStudentByID(student.IdStudent);
                DataGridViewRow row  = new DataGridViewRow();
                string studentName   = studentInfo.FullName + " (" + Groups.GetGroupByID(studentInfo.Id_Group).Number + ")";
                row.HeaderCell.Value = studentName;
                row.Tag = student;
                Table.Rows.Add(row);
                int RowHeaderWidth = 9 * studentName.Length;
                if (RowHeaderWidth > Table.RowHeadersWidth)
                {
                    Table.RowHeadersWidth = RowHeaderWidth;
                }
            });
            int i = 0, j = 0;

            StudentList.ForEach(stud =>
            {
                j = 0;
                double averageAssessment = 0;
                double assessmentCounr   = 0;
                SubjectsList.ForEach(subj =>
                {
                    int assessments    = stud.AssessmentsList[subj];
                    averageAssessment += assessments;
                    assessmentCounr++;
                    Table[j, i].Value = assessments;
                    j++;
                });
                averageAssessment /= assessmentCounr;
                Table[j, i].Value  = Math.Round(averageAssessment, 2);
                Student student    = Students.GetStudentByID(stud.IdStudent);
                double allowance   = 0;
                if (averageAssessment >= 9 && student.Active_Participation)
                {
                    allowance = 1.5;
                    Table[j + 1, i].Style.BackColor = System.Drawing.Color.FromArgb(28, 193, 243);
                }
                else if (averageAssessment >= 9)
                {
                    allowance = 1.25;
                    Table[j + 1, i].Style.BackColor = System.Drawing.Color.FromArgb(80, 216, 103);
                }
                else if (averageAssessment > 5)
                {
                    allowance = 1;
                }
                else
                {
                    Table[j + 1, i].Style.BackColor = System.Drawing.Color.FromArgb(253, 81, 81);
                }
                Double.TryParse(StipendBox.Text, out double stipend);
                stipend *= allowance;
                Table[j + 1, i].Value = Math.Round(stipend, 2);
                i++;
            });
            Table.CellValueChanged += UpdateData;
        }