/// <summary> /// 対象の設定ファイルのバリデーションを行い、その結果を返します。 /// </summary> /// <returns></returns> public SettingFileValidatorResult GetValidationResult() { SettingFileValidatorResult ret = new SettingFileValidatorResult(); ret = GetKeyContainsValidationResult(ret); ret = GetKeyDuplicateValidationResult(ret); return(ret); }
/// <summary> /// キー情報がすべて含まれているかどうかのバリデーションを行い、その結果を返します。 /// </summary> /// <returns></returns> private SettingFileValidatorResult GetKeyContainsValidationResult(SettingFileValidatorResult result) { SettingFileValidatorResult ret = new SettingFileValidatorResult(result); //対応ディクショナリとの差集合リストを取得し、設定 List <KeyboardUtilConstants.VirtualKeyCode> exceptKeys = KeyboardUtilConstants.keyNameKeyCodeDictionary.Values.Except(_loadedPicSettings.Select((item) => KeyboardUtilConstants.keyNameKeyCodeDictionary[item.KeyName])).ToList(); ret.NoExistKeyCodeList.AddRange(exceptKeys); return(ret); }
/// <summary> /// キー情報が重複しているかどうかのバリデーションを行い、その結果を返します。 /// </summary> /// <returns></returns> private SettingFileValidatorResult GetKeyDuplicateValidationResult(SettingFileValidatorResult result) { SettingFileValidatorResult ret = new SettingFileValidatorResult(result); //キー名称の重複を検出 var duplicates = _loadedPicSettings .GroupBy((item) => item.KeyName) .Where((item) => item.Count() > 1) .Select((item) => new { Key = item.Key, Count = item.Count() }) .ToList(); //キー重複情報の設定 foreach (var item in duplicates) { ret.DuplicateKeyList.Add(new SettingFileValidatorResult.SettingFileValidatorDuplicateResult( KeyboardUtilConstants.keyNameKeyCodeDictionary[item.Key], item.Count)); } return(ret); }
public SettingFileValidatorResult(SettingFileValidatorResult result) { NoExistKeyCodeList = result.NoExistKeyCodeList; DuplicateKeyList = result.DuplicateKeyList; }