Пример #1
0
        public List <ImportRecord> GetDuplicateIdNumberList()
        {
            Dictionary <string, ImportRecord> duplicateList = new Dictionary <string, ImportRecord>();
            Dictionary <string, ImportRecord> checkList     = new Dictionary <string, ImportRecord>();

            foreach (ImportRecord each in _by_identity.Values)
            {
                if (string.IsNullOrEmpty(each.IDNumber))
                {
                    continue;
                }

                // 多加狀態來分別
                if (checkList.ContainsKey(each.IDNumber + each.Status))
                {
                    duplicateList.Add(each.Identity, each);
                }
                else
                {
                    checkList.Add(each.IDNumber + each.Status, each);
                }
            }

            //將重覆資料的第一筆也加入到 Duplicate 清單中,因為在檢查時會略過第一筆(因為出現第二筆才當重覆)。
            List <ImportRecord> copyList = new List <ImportRecord>(duplicateList.Values);

            foreach (ImportRecord each in copyList)
            {
                ImportRecord origin = checkList[each.IDNumber + each.Status];
                duplicateList.Add(origin.Identity, origin);
            }

            return(new List <ImportRecord>(duplicateList.Values));
        }
Пример #2
0
        public void Add(ImportRecord record)
        {
            // 加入狀態,不同學生狀態可以有相同學號、身分證號、帳號
            _by_identity.Add(record.Identity, record);

            if (!string.IsNullOrEmpty(record.IDNumber))
            {
                if (!_by_id_number.ContainsKey(record.IDNumber + record.Status))
                {
                    _by_id_number.Add(record.IDNumber + record.Status, record);
                }
            }

            if (!string.IsNullOrEmpty(record.StudentNumber))
            {
                if (!_by_student_number.ContainsKey(record.StudentNumber + record.Status))
                {
                    _by_student_number.Add(record.StudentNumber + record.Status, record);
                }
            }

            if (!string.IsNullOrEmpty(record.SALoginName))
            {
                if (!_by_login_name.ContainsKey(record.SALoginName + record.Status))
                {
                    _by_login_name.Add(record.SALoginName + record.Status, record);
                }
            }
        }