public IEnumerable <ValidationResult> Validate(ValidationContext validationContext) { List <ValidationResult> validationResults = new List <ValidationResult>(); // 檢查教學方式 if (!(IsBlackboard || IsBook || IsPPT || IsBuild || IsInteractive)) { validationResults.Add(new ValidationResult("請選擇老師教學方式")); } // 檢查點名 if (RollCallFrequency == 0 && (ByInPerson || BySignInSheet || ByOnline || ByClasswork || ByTest)) { validationResults.Add(new ValidationResult("老師不點名為什麼要選點名方式?")); } else if (RollCallFrequency > 0 && !(ByInPerson || BySignInSheet || ByOnline || ByClasswork || ByTest)) { validationResults.Add(new ValidationResult("請選擇老師點名方式")); } // 檢查作業與考試 if (!(HaveClasswork || HaveTest || HaveMidtermExam || HaveFinalExam)) { validationResults.Add(new ValidationResult("請選擇作業與考試")); } // 檢查備註說明長度 if (Remark.GetUTF8BytesCount() > 450) { validationResults.Add(new ValidationResult("備註長度限制為 450 半形字元以內,請縮短後再重新提交")); } // 檢查總評價 if (Grade <= 0) { validationResults.Add(new ValidationResult("老師至少值得一分吧?")); } else if (Grade >= 6) { validationResults.Add(new ValidationResult("最多五分不能再高囉!")); } return(validationResults); }