예제 #1
0
 public CategoryFormVM(StudyUnitVM studyUnit)
     : base(studyUnit)
 {
     categorySchemes = new ObservableCollection<CategorySchemeVM>();
     foreach (CategoryScheme categorySchemeModel in studyUnit.CategorySchemeModels)
     {
         CategorySchemeVM categoryScheme = new CategorySchemeVM(categorySchemeModel) {
             Parent = this
         };
         categorySchemes.Add(categoryScheme);
     }
     modelSyncher = new ModelSyncher<CategorySchemeVM, CategoryScheme>(this, categorySchemes, studyUnit.CategorySchemeModels);
 }
예제 #2
0
 public CategoryFormVM(StudyUnitVM studyUnit) : base(studyUnit)
 {
     categorySchemes = new ObservableCollection <CategorySchemeVM>();
     foreach (CategoryScheme categorySchemeModel in studyUnit.CategorySchemeModels)
     {
         CategorySchemeVM categoryScheme = new CategorySchemeVM(categorySchemeModel)
         {
             Parent = this
         };
         categorySchemes.Add(categoryScheme);
     }
     modelSyncher = new ModelSyncher <CategorySchemeVM, CategoryScheme>(this, categorySchemes, studyUnit.CategorySchemeModels);
 }
예제 #3
0
        public void AddCategoryScheme()
        {
            InputDialog dlg = new InputDialog();

            dlg.Title = Resources.InputCategorySchemeName; //Enter the name of Category Scheme
            dlg.Owner = Application.Current.MainWindow;
            dlg.ShowDialog();
            if (dlg.DialogResult == true)
            {
                CategoryScheme categorySchemeModel = new CategoryScheme()
                {
                    Title = dlg.textBox.Text
                };
                CategorySchemeVM categoryScheme = new CategorySchemeVM(categorySchemeModel);
                categorySchemes.Add(categoryScheme);
                if (SelectedCategoryScheme == null)
                {
                    SelectedCategoryScheme = categoryScheme;
                }
                Memorize();
            }
        }
예제 #4
0
        public void CompleteResponse(ResponseVM response)
        {
            if (!response.IsTypeChoices)
            {
                return;
            }

            CodeSchemeVM codeScheme = response.CodeScheme;
            if (!codeForm.CodeSchemes.Contains(codeScheme))
            {
                //設問設計画面で全く新規に追加された場合
                //タイトルを設定する(コードが全く追加されておらずかつレスポンスのタイトルも空白の場合、null代入により「無題の」が設定される。
                codeScheme.Title = string.IsNullOrEmpty(response.Title) ? CodeVM.JoinLabels(codeScheme.Codes) : response.Title;
                //CodeSchemeを追加する
                codeForm.CodeSchemes.Add(codeScheme);
            }

            List<CodeVM> orphanCodes = new List<CodeVM>();
            foreach (CodeVM code in codeScheme.Codes)
            {
                if (!categoryForm.Contains(code.CategoryId))
                {
                    //設問に対応したカテゴリースキームが存在しない場合、孤立したコードは覚えておく。
                    orphanCodes.Add(code);
                }
            }

            if (orphanCodes.Count > 0) {
                //孤立したコード(カテゴリーが存在既存のカテゴリ集合に含まれていない場合)
                //カテゴリスキームを新規生成してそこにカテゴリを追加する。
                CategorySchemeVM categoryScheme = categoryForm.FindCategorySchemeByResponseId(response.Id);
                if (categoryScheme == null)
                {
                    categoryScheme = new CategorySchemeVM();
                    categoryScheme.ResponseId = response.Id;
                    categoryScheme.Title = string.IsNullOrEmpty(response.Title) ? CodeVM.JoinLabels(orphanCodes) : response.Title; //全体からではなく孤立したコードから生成する
                    categoryForm.CategorySchemes.Add(categoryScheme);
                }
                //カテゴリを追加していく(コードは自動的に追加されるがカテゴリは自動では追加されないため)
                foreach (CodeVM code in orphanCodes)
                {
                    //それぞれのCodeVMにはCategoryVMが含まれているのでそれをCategorySchemeに追加していく。
                    categoryScheme.Categories.Add(code.Category);
                }
            }
        }
예제 #5
0
 public void AddCategoryScheme()
 {
     InputDialog dlg = new InputDialog();
     dlg.Title = Resources.InputCategorySchemeName; //選択肢群の名前を入力してください
     dlg.Owner = Application.Current.MainWindow;
     dlg.ShowDialog();
     if (dlg.DialogResult == true)
     {
         CategoryScheme categorySchemeModel = new CategoryScheme() { Title = dlg.textBox.Text };
         CategorySchemeVM categoryScheme = new CategorySchemeVM(categorySchemeModel);
         categorySchemes.Add(categoryScheme);
         if (SelectedCategoryScheme == null)
         {
             SelectedCategoryScheme = categoryScheme;
         }
         Memorize();
     }
 }