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);
        }
Пример #2
0
        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;
        }
Пример #7
0
        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;
        }
Пример #8
0
        /// <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;
        }
Пример #11
0
        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;
        }
Пример #13
0
        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>";
        }
Пример #20
0
        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;
        }
Пример #27
0
 /// <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;
        }