public bool Validate(IRowStream Value) { bool check = true; for (int x = 1; x <= 學生選填志願數; x++) { if (Value.Contains("學年度") && Value.Contains("學期") && Value.Contains("志願" + x)) { string SchoolYear = Value.GetValue("學年度"); string Semester = Value.GetValue("學期"); string CourseName = Value.GetValue("志願" + x); if (!string.IsNullOrEmpty(CourseName)) { string CourseKey = SchoolYear + "," + Semester + "," + CourseName; if (!ClubDic.ContainsKey(CourseKey)) { check = false; } } } } return(check); }
public bool Validate(IRowStream Value) { if (Value.Contains("學年度") && Value.Contains("學期") && Value.Contains("社團名稱") && Value.Contains("學號")) { string school_year = Value.GetValue("學年度"); string semester = Value.GetValue("學期"); string club_name = Value.GetValue("社團名稱"); string student_number = Value.GetValue("學號"); string ClubKey = school_year + "_" + semester + "_" + club_name; mTask.Wait(); if (ClubNameDic.ContainsKey(ClubKey)) { if (ClubNameDic[ClubKey].Contains(student_number)) { return(true); } else { return(false); } } else { return(false); } } return(false); }
public bool Validate(IRowStream Value) { bool retVal = false; if (Value.Contains("學號") && Value.Contains("狀態")) { string status = Value.GetValue("狀態").Trim(); string key = Value.GetValue("學號") + "_"; if (_StudStatusDict.ContainsKey(status)) { key += _StudStatusDict[status]; } else { key += "1"; } if (Global._AllStudentNumberStatusIDTemp.ContainsKey(key)) { retVal = true; } } return(retVal); }
public bool Validate(IRowStream Value) { if (Value.Contains("監護人關係") && Value.Contains("監護人稱謂")) if (string.IsNullOrEmpty(Value.GetValue("監護人稱謂")) && !string.IsNullOrEmpty(Value.GetValue("監護人關係"))) return false; return true; //return !string.IsNullOrEmpty(Value.GetValue("監護人稱謂")); }
public string Correct(IRowStream Value) { if (Value.Contains("監護人關係") && Value.Contains("監護人稱謂")) { if (string.IsNullOrEmpty(Value.GetValue("監護人稱謂")) && !string.IsNullOrEmpty(Value.GetValue("監護人關係"))) { return "<A><監護人稱謂>" + Value.GetValue("監護人關係") + "</監護人稱謂></A>"; } } return "<A><監護人稱謂/></A>"; }
public bool Validate(IRowStream Value) { //1.判斷欄位資料來源是否包含『異動類別』及『原因及事項』欄位 //2.判斷『異動類別』為更正學籍,以及『原因及事項』為空白。 //3.判斷以下欄位其中一個『新生日』、『新身分證號』、『新姓名』、『新性別』有包含欄位,而且不為空白。 //3.符合1、2點就傳回false,否則傳回true if (Value.Contains("異動類別") && Value.Contains("原因及事項")) if (Value.GetValue("異動類別").Equals("更正學籍") && string.IsNullOrEmpty(Value.GetValue("原因及事項"))) if (IsCorrectable(Value)) return false; return true; }
public bool Validate(IRowStream Value) { if (Value.Contains("開始時間") && Value.Contains("結束時間")) { string StartTime = Value.GetValue("開始時間"); string EndTime = Value.GetValue("結束時間"); if (Utility.IsValidateTime(StartTime).Item1 && Utility.IsValidateTime(EndTime).Item1) return Utility.GetStorageTime(StartTime, EndTime).Item2 > 0; } return false; }
/// <summary> /// 傳入要驗證的資料列,依教師姓名、暱稱檢查系統中是否有對應的教師 /// </summary> /// <param name="Value"></param> /// <returns></returns> public bool Validate(IRowStream Value) { if (Value.Contains("教師姓名") && Value.Contains("教師暱稱")) { string TeacherName = Value.GetValue("教師姓名"); string TeacherNickName = Value.GetValue("教師暱稱"); mTask.Wait(); return mTeacherNames.Contains(TeacherName + "," + TeacherNickName); } return false; }
public bool Validate(IRowStream Value) { bool retVal = false; if (Value.Contains("學號") && Value.Contains("狀態")) { string key = Value.GetValue("學號") + "_" + Value.GetValue("狀態").Trim(); if (Global._AllStudentNumberStatusIDTemp.ContainsKey(key)) { retVal = true; } } return(retVal); }
private bool IsCorrectable(IRowStream Value) { if (Value.Contains("新生日") && !string.IsNullOrEmpty(Value.GetValue("新生日"))) return true; if (Value.Contains("新身分證號") && !string.IsNullOrEmpty(Value.GetValue("新身分證號"))) return true; if (Value.Contains("新姓名") && !string.IsNullOrEmpty(Value.GetValue("新姓名"))) return true; if (Value.Contains("新性別") && !string.IsNullOrEmpty(Value.GetValue("新性別"))) return true; return false; }
public bool Validate(IRowStream Value) { if (Value.Contains("學年度") && Value.Contains("學期") && Value.Contains("社團名稱")) { string CourseName = Value.GetValue("學年度"); string SchoolYear = Value.GetValue("學期"); string Semester = Value.GetValue("社團名稱"); string CourseKey = CourseName + "," + SchoolYear + "," + Semester; mTask.Wait(); return(!mCourseNames.Contains(CourseKey)); } return(false); }
/// <summary> /// 傳入要驗證的資料列,依課程名稱、學年度及學期檢查系統中是否有對應的課程 /// </summary> /// <param name="Value"></param> /// <returns></returns> public bool Validate(IRowStream Value) { if (Value.Contains("課程名稱") && Value.Contains("學年度") && Value.Contains("學期") && Value.Contains("梯次")) { string CourseName = Value.GetValue("課程名稱"); string SchoolYear = Value.GetValue("學年度"); string Semester = Value.GetValue("學期"); string Month = Value.GetValue("梯次"); string CourseKey = CourseName + "," + SchoolYear + "," + Semester + "," + Month; mTask.Wait(); return mCourseNames.Contains(CourseKey); } return false; }
public bool Validate(IRowStream Value) { if (Value.Contains("開始日期") && Value.Contains("結束日期")) { DateTime StartDate = new DateTime(); DateTime EndDate = new DateTime(); if (DateTime.TryParse(Value.GetValue("開始日期"),out StartDate) && DateTime.TryParse(Value.GetValue("結束日期"),out EndDate)) { int Compare = DateTime.Compare(EndDate,StartDate); bool Result = Compare >= 0; return Result; } } return false; }
public bool Validate(IRowStream Value) { bool retVal = false; if (Value.Contains("學號") && Value.Contains("狀態")) { string status=Value.GetValue("狀態").Trim(); string key=Value.GetValue("學號")+"_"; if(_StudStatusDict.ContainsKey(status)) key+=_StudStatusDict[status]; else key+="1"; if(Global._AllStudentNumberStatusIDTemp.ContainsKey(key)) retVal = true; } return retVal; }
public bool Validate(IRowStream Value) { bool retVal = false; if (Value.Contains("晤談老師")) { // 表示有這位老師 if(Global._AllTeacherNameIdDictTemp.ContainsKey(Value.GetValue("晤談老師"))) retVal =true ; } return retVal; }
public bool Validate(IRowStream Value) { bool retVal = true; if (Value.Contains("學號")) { if(Global._HasStudQuizDataDictTemp.ContainsKey(Value.GetValue("學號"))) retVal= false ; } return retVal; }
/// <summary> /// 透過輸入的欄位名稱, 取得匯入資料的值 /// </summary> /// <param name="row"></param> /// <param name="name"></param> /// <returns></returns> public static string GetIRowValueString(IRowStream row, string name) { if (row.Contains(name)) { if (string.IsNullOrEmpty(row.GetValue(name))) return ""; return row.GetValue(name).Trim(); } else return ""; }
public bool Validate(IRowStream row) { if (row == null) throw new ArgumentException("參數 row 不允許 Null。", "row"); bool allValidated = true; foreach (FieldDescription field in Fields.Values) { //if (field.Required && !row.Contains(field.Name)) //{ // ErrorCapturedEventArgs args = new ErrorCapturedEventArgs(row, ValidatorType.Field, ErrorType.Error, field.Name, "缺少指定欄位「" + field.Name + "」。"); // if (ErrorCaptured != null) ErrorCaptured(this, args); // throw new ArgumentException(string.Format("RowSource 缺少指定欄位「{0}」。", field.Name)); //} //如果 RowSource 有此欄位才驗證 if (!row.Contains(field.Name)) continue; //取得欄位值。 string fieldValue = row.GetValue(field.Name); //確認空值是否要驗證資料。 if (!field.EmptyAlsoValidate) if (string.IsNullOrEmpty(fieldValue)) continue; bool isValidated = true; //驗證欄位各項規則 foreach (ValidateStatement vstatement in field.ValidateStatements) { if (IsValidatorEnabled(row, vstatement)) { IFieldValidator validator = GetValidatorInstance(vstatement); if (!validator.Validate(fieldValue)) { if (!IsCorrectable(row, field, fieldValue, isValidated, vstatement, validator)) isValidated = false; //如果是 Error 就不繼續驗證了, Warning 就需要再驗證。 if (vstatement.ErrorType == ErrorType.Error) break; } } } if (!isValidated) allValidated = false; } return allValidated; }
public string Correct(IRowStream Value) { if (Value.Contains("異動類別") && Value.Contains("原因及事項")) if (Value.GetValue("異動類別").Equals("更正學籍") && string.IsNullOrEmpty(Value.GetValue("原因及事項"))) { string Result = string.Empty; if (Value.Contains("新生日") && !string.IsNullOrEmpty(Value.GetValue("新生日"))) Result += "新生日、"; if (Value.Contains("新身分證號") && !string.IsNullOrEmpty(Value.GetValue("新身分證號"))) Result += "新身分證號、"; if (Value.Contains("新姓名") && !string.IsNullOrEmpty(Value.GetValue("新姓名"))) Result += "新姓名、"; if (Value.Contains("新性別") && !string.IsNullOrEmpty(Value.GetValue("新性別"))) Result += "新性別、"; if (!string.IsNullOrEmpty(Result)) Result = "更正" + Result.Substring(0, Result.Length - 1); Result = "<A><原因及事項>" + Result + "</原因及事項></A>"; return Result; } return "<A><原因及事項/></A>"; }
public bool Validate(IRowStream Value) { bool retVal = false; if (Value.Contains("晤談老師")) { // 表示有這位老師 if (Global._AllTeacherNameIdDictTemp.ContainsKey(Value.GetValue("晤談老師"))) { retVal = true; } } return(retVal); }
public bool Validate(IRowStream Value) { bool retVal = true; if (Value.Contains("學號")) { if (Global._HasStudQuizDataDictTemp.ContainsKey(Value.GetValue("學號"))) { retVal = false; } } return(retVal); }
/// <summary> /// 透過輸入的欄位名稱, 取得匯入資料的值, 並轉成int /// </summary> /// <param name="row"></param> /// <param name="name"></param> /// <returns></returns> public static int GetIRowValueInt(IRowStream row, string name) { if (row.Contains(name)) { if (string.IsNullOrEmpty(row.GetValue(name))) return -1; int retVal; if (int.TryParse(row.GetValue(name).Trim(), out retVal)) return retVal; else return -1; } else return -1; }
/// <summary> /// 透過輸入的欄位名稱, 取的匯入資料的值, 並轉成decimal /// </summary> /// <param name="row"></param> /// <param name="name"></param> /// <returns></returns> public static decimal? GetIRowValueDecimal(IRowStream row, string name) { if (row.Contains(name)) { if (string.IsNullOrEmpty(row.GetValue(name))) return null; decimal retVal; if (decimal.TryParse(row.GetValue(name).Trim(), out retVal)) return retVal; else return null; } else return null; }
/// <summary> /// 透過輸入的欄位名稱, 取的匯入資料的值, 並轉成DateTime /// </summary> /// <param name="row"></param> /// <param name="name"></param> /// <returns></returns> public static DateTime? GetIRowValueDateTime(IRowStream row, string name) { if (row.Contains(name)) { if (string.IsNullOrEmpty(row.GetValue(name))) return null; DateTime dt; if (DateTime.TryParse(row.GetValue(name).Trim(), out dt)) return dt; else return null; } else return null; }
/// <summary> /// 透過輸入的欄位名稱, 取的匯入資料的值 /// </summary> public static string GetIRowValueString(IRowStream row, string name) { if (row.Contains(name)) { if (string.IsNullOrEmpty(row.GetValue(name))) { return(""); } return(row.GetValue(name).Trim()); } else { return(""); } }
public string Correct(IRowStream Value) { if (Value.Contains("缺曠名稱")) { string name = Value.GetValue("缺曠名稱"); if (!string.IsNullOrEmpty(name)) { return "<A><縮寫>" + name.Substring(0, 1) + "</縮寫></A>"; } else { return string.Empty; } } return string.Empty; }
/// <summary> /// 透過輸入的欄位名稱, 取的匯入資料的值, 並轉成decimal /// </summary> /// <param name="row"></param> /// <param name="name"></param> /// <returns></returns> public static decimal?GetIRowValueDecimal(IRowStream row, string name) { if (row.Contains(name)) { if (string.IsNullOrEmpty(row.GetValue(name))) { return(null); } decimal retVal; if (decimal.TryParse(row.GetValue(name).Trim(), out retVal)) { return(retVal); } else { return(null); } } else { return(null); } }
/// <summary> /// 透過輸入的欄位名稱, 取的匯入資料的值, 並轉成int /// </summary> /// <param name="row"></param> /// <param name="name"></param> /// <returns></returns> public static int?GetIRowValueInt(IRowStream row, string name) { if (row.Contains(name)) { if (string.IsNullOrEmpty(row.GetValue(name))) { return(null); } int retVal; if (int.TryParse(row.GetValue(name).Trim(), out retVal)) { return(retVal); } else { return(null); } } else { return(null); } }
/// <summary> /// 透過輸入的欄位名稱, 取的匯入資料的值, 並轉成DateTime /// </summary> /// <param name="row"></param> /// <param name="name"></param> /// <returns></returns> public static DateTime?GetIRowValueDateTime(IRowStream row, string name) { if (row.Contains(name)) { if (string.IsNullOrEmpty(row.GetValue(name))) { return(null); } DateTime dt; if (DateTime.TryParse(row.GetValue(name).Trim(), out dt)) { return(dt); } else { return(null); } } else { return(null); } }
public List<FieldValidatedDescription> ValidateHeader(IRowStream row) { if (row == null) throw new ArgumentException("參數 row 不允許 Null。", "row"); List<FieldValidatedDescription> FieldDescriptions = new List<FieldValidatedDescription>(); foreach (FieldDescription DefinitionField in Fields.Values) { FieldValidatedDescription FieldDescription = new FieldValidatedDescription(DefinitionField); FieldDescription.InSource = row.Contains(DefinitionField.Name) ? true : false; FieldDescription.InDefinition = true; FieldDescriptions.Add(FieldDescription); } foreach (string SourceField in row) { if (!Fields.ContainsKey(SourceField)) { FieldValidatedDescription FieldDescription = new FieldValidatedDescription(null); FieldDescription.Name = SourceField; FieldDescription.InSource = true; FieldDescription.InDefinition = false; FieldDescriptions.Add(FieldDescription); } } return FieldDescriptions; }