如何将字典中的行计数与行合并结合起来?
本文关键字:合并 结合 起来 字典 | 更新日期: 2023-09-27 18:17:37
我有以下检查错误的类:
public bool ValidateAccountDeletion(Account account)
{
var _errors = new Dictionary<string, string>();
var accounts = _accountRepository.GetPk(account.PartitionKey);
if (_productRepository.GetPk("0000" + account.RowKey).Count() != 0)
_errors.Add("", "Account contains products");
return _errors;
}
和下面的扩展类来合并我的字典和ModelStateDictionary
public static class ModelExtensions {
public static bool HasValue(this string value) {
return !string.IsNullOrEmpty(value) && value.Trim().Length > 0;
}
public static void Merge(this ModelStateDictionary modelState, IDictionary<string, string> dictionary) {
Guard.AgainstNullParameter(modelState, "modelState");
Guard.AgainstNullParameter(dictionary, "dictionary");
foreach(var item in dictionary) {
modelState.AddModelError(item.Key, item.Value);
}
}
当我调用validate然后尝试合并时,它看起来不干净:
var errors = _accountService.ValidateAccount(vm.Account);
if (errors.Count > 0)
this.ModelState.Merge(errors)
是否有一种方法,我可以有一个不同的构造函数来合并,然后只输入输出:
_accountService.ValidateAccount(vm.Account);
我在想怎么才能做到这一点,但想不出一个简单的方法
由于你的Merge
方法在没有错误的情况下基本上什么都不做,你可以只做
ModelState.Merge(_accountService.ValidateAccount(vm.Account));
错误计数检查是不必要的。