void BLanguageFilterClick(object sender, EventArgs e)
        {
            DefaultTranslateProfile pf = defaultProfile;

            DefaultProfileLanguagesForm form = new DefaultProfileLanguagesForm(pf);

            if (form.ShowDialog(this) == DialogResult.OK)
            {
                SubjectCollection subjects         = pf.GetSupportedSubjects();
                SubjectCollection subjectsToDelete = new SubjectCollection();

                foreach (string subject in pf.Subjects)
                {
                    if (!subjects.Contains(subject))
                    {
                        subjectsToDelete.Add(subject);
                    }
                }

                foreach (string subject in subjectsToDelete)
                {
                    pf.Subjects.Remove(subject);
                }

                LanguagePairCollection toDelete = new LanguagePairCollection();
                foreach (LanguagePair lp in pf.History)
                {
                    if (pf.DisabledSourceLanguages.Contains(lp.From) ||
                        pf.DisabledTargetLanguages.Contains(lp.To))
                    {
                        toDelete.Add(lp);
                    }
                }

                foreach (LanguagePair lp in toDelete)
                {
                    pf.History.Remove(lp);
                }
            }
            form.Dispose();
            changed = true;
        }
        protected override Entity OnAdd()
        {
            var newItem = new Subject();

            using (var frm = new frmSubject_Add())
            {
                frm.ItemData = newItem;
                if (frm.ShowDialog() != DialogResult.OK)
                {
                    return(null);
                }
            }

            App.LogAction("Subject", "Created Subject : " + newItem.SubjectCode);


            ItemDataCollection.Add(newItem);

            return(newItem);
        }
        void AFilterLanguagesExecute(object sender, EventArgs e)
        {
            DefaultTranslateProfile pf = currentProfile as DefaultTranslateProfile;
            if(pf == null)
                return;

            pf.DisabledLanguagesAlreadySet = true;
            DefaultProfileLanguagesForm form = new DefaultProfileLanguagesForm(pf);
            if(form.ShowDialog(this) == DialogResult.OK)
            {
                SubjectCollection subjects = pf.GetSupportedSubjects();
                SubjectCollection subjectsToDelete = new SubjectCollection();

                foreach(string subject in pf.Subjects)
                {
                    if(!subjects.Contains(subject))
                        subjectsToDelete.Add(subject);
                }

                foreach(string subject in subjectsToDelete)
                    pf.Subjects.Remove(subject);

                LanguagePairCollection toDelete = new LanguagePairCollection();
                foreach(LanguagePair lp in pf.History)
                {
                    if(pf.DisabledSourceLanguages.Contains(lp.From) ||
                        pf.DisabledTargetLanguages.Contains(lp.To))
                    {
                        toDelete.Add(lp);
                    }
                }

                foreach(LanguagePair lp in toDelete)
                    pf.History.Remove(lp);
                languageSelector.Profile = currentProfile;
            }
            form.Dispose();
        }
Esempio n. 4
0
        private void ProcessScoreList(int semesters, List <string> printEntries)
        {
            //統計有成績的學期
            if (semesters <= 0)
            {
                semesters = int.MaxValue;
            }
            List <int> semesterlist = new List <int>();

            foreach (SemesterSubjectScoreInfo info in _student.SemesterSubjectScoreList)
            {
                if (info.Detail.GetAttribute("不需評分") == "是")
                {
                    continue;
                }
                if (!semesterlist.Contains((info.GradeYear - 1) * 2 + info.Semester))
                {
                    semesterlist.Add((info.GradeYear - 1) * 2 + info.Semester);
                }
            }

            foreach (SemesterEntryScoreInfo info in _student.SemesterEntryScoreList)
            {
                if (!semesterlist.Contains((info.GradeYear - 1) * 2 + info.Semester))
                {
                    semesterlist.Add((info.GradeYear - 1) * 2 + info.Semester);
                }
            }
            semesterlist.Sort();

            foreach (SemesterSubjectScoreInfo info in _student.SemesterSubjectScoreList)
            {
                if (info.Detail.GetAttribute("不需評分") == "是")
                {
                    continue;
                }
                //超過統計學期當沒看到
                if (semesterlist.Count > semesters && (info.GradeYear - 1) * 2 + info.Semester > semesterlist[semesters - 1])
                {
                    continue;
                }
                if (!_subjects.ContainsKey(info.Subject))
                {
                    SubjectInfo new_info = new SubjectInfo(info.Subject);
                    _subjects.Add(info.Subject, new_info);
                    new_info.AddSemsScore(info.GradeYear, info.Semester, SelectScore(info));
                }
                else
                {
                    _subjects[info.Subject].AddSemsScore(info.GradeYear, info.Semester, SelectScore(info));
                }
            }

            foreach (SemesterEntryScoreInfo info in _student.SemesterEntryScoreList)
            {
                //超過統計學期當沒看到
                if (semesterlist.Count > semesters && (info.GradeYear - 1) * 2 + info.Semester > semesterlist[semesters - 1])
                {
                    continue;
                }
                //不是要列印的分項當沒看到
                if (!printEntries.Contains(info.Entry))
                {
                    continue;
                }
                if (!_entries.ContainsKey(info.Entry))
                {
                    EntryInfo new_info = new EntryInfo(info.Entry);
                    _entries.Add(info.Entry, new_info);
                    new_info.AddSemsScore(info.GradeYear, info.Semester, info.Score);
                }
                else
                {
                    _entries[info.Entry].AddSemsScore(info.GradeYear, info.Semester, info.Score);
                }
            }
        }
        void BLanguageFilterClick(object sender, EventArgs e)
        {
            DefaultTranslateProfile pf = defaultProfile;

            DefaultProfileLanguagesForm form = new DefaultProfileLanguagesForm(pf);
            if(form.ShowDialog(this) == DialogResult.OK)
            {
                SubjectCollection subjects = pf.GetSupportedSubjects();
                SubjectCollection subjectsToDelete = new SubjectCollection();

                foreach(string subject in pf.Subjects)
                {
                    if(!subjects.Contains(subject))
                        subjectsToDelete.Add(subject);
                }

                foreach(string subject in subjectsToDelete)
                    pf.Subjects.Remove(subject);

                LanguagePairCollection toDelete = new LanguagePairCollection();
                foreach(LanguagePair lp in pf.History)
                {
                    if(pf.DisabledSourceLanguages.Contains(lp.From) ||
                        pf.DisabledTargetLanguages.Contains(lp.To))
                    {
                        toDelete.Add(lp);
                    }
                }

                foreach(LanguagePair lp in toDelete)
                    pf.History.Remove(lp);
            }
            form.Dispose();
            changed = true;
        }
Esempio n. 6
0
        void LbSubjectsItemCheck(object sender, ItemCheckEventArgs e)
        {
            if (loadingSubjects)
            {
                return;
            }

            if (e.Index == 0)
            {
                try
                {
                    ignoreServicesLoading = true;
                    loadingSubjects       = true;
                    LockUpdate(true);
                    if (e.NewValue == CheckState.Checked)
                    {                      //all
                        subjects.Clear();
                        subjects.AddRange(supportedSubjects);
                        for (int i = 1; i < lbSubjects.Items.Count; i++)
                        {
                            lbSubjects.SetItemCheckState(i, e.NewValue);
                        }
                    }
                    else if (e.NewValue == CheckState.Unchecked)
                    {
                        subjects.Clear();
                        subjects.Add((lbSubjects.Items[1] as SubjectContainer).Subject);

                        lbSubjects.SetItemCheckState(1, CheckState.Checked);

                        for (int i = 2; i < lbSubjects.Items.Count; i++)
                        {
                            lbSubjects.SetItemCheckState(i, e.NewValue);
                        }
                    }

                    SetLanguages(profile.GetLanguagePairs());

                    LanguagePairCollection to_delete = new LanguagePairCollection();
                    int index;
                    foreach (LanguagePair lp in history)
                    {
                        index = Languages.BinarySearch(lp);
                        if (index < 0)
                        {
                            to_delete.Add(lp);
                        }
                    }

                    foreach (LanguagePair lp in to_delete)
                    {
                        history.Remove(lp);
                    }
                    LoadHistory();
                }
                finally
                {
                    LockUpdate(false);
                    ignoreServicesLoading = false;
                    loadingSubjects       = false;
                    serviceItemsSettings  = null;                    //reset
                    LoadServices(false);
                }

                if (SubjectsChanged != null)
                {
                    SubjectsChanged(this, new EventArgs());
                }

                return;
            }


            SubjectContainer sc = (SubjectContainer)lbSubjects.Items[e.Index];

            if (e.NewValue == CheckState.Checked)
            {
                subjects.Add(sc.Subject);
            }
            else if (e.NewValue == CheckState.Unchecked)
            {
                if (subjects.Count == 1)
                {
                    int new_idx = e.Index;
                    new_idx++;
                    if (new_idx >= lbSubjects.Items.Count)
                    {
                        new_idx = 1;
                    }
                    lbSubjects.SetItemChecked(new_idx, true);
                }
                subjects.Remove(sc.Subject);
            }

            try
            {
                ignoreServicesLoading = true;
                SetLanguages(profile.GetLanguagePairs());
                LanguagePairCollection to_delete = new LanguagePairCollection();
                int index;
                foreach (LanguagePair lp in history)
                {
                    index = Languages.BinarySearch(lp);
                    if (index < 0)
                    {
                        to_delete.Add(lp);
                    }
                }

                foreach (LanguagePair lp in to_delete)
                {
                    history.Remove(lp);
                }
                LoadHistory();
            }
            finally
            {
                ignoreServicesLoading = false;
                serviceItemsSettings  = null;                //reset
                LoadServices(false);
            }

            if (SubjectsChanged != null)
            {
                SubjectsChanged(this, new EventArgs());
            }
        }
Esempio n. 7
0
 protected internal void AddSupportedSubject(string subject)
 {
     supportedSubjects.Add(subject);
 }