如何将字典中的行计数与行合并结合起来?

本文关键字:合并 结合 起来 字典 | 更新日期: 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));

错误计数检查是不必要的。