protected virtual async Task CreateColumnInfoAsync(CreateOrUpdateColumnInfoDto input)
 {
     if (_columnInfoRepository.GetAll().Any(p => p.Title == input.ColumnInfo.Title))
     {
         throw new UserFriendlyException(L("TitleExist"));
     }
     //如果排序号为空,则自动设置序号
     if (!input.ColumnInfo.SortNo.HasValue)
     {
         input.ColumnInfo.SortNo = _columnInfoRepository.GetAll().DefaultIfEmpty().Max(p => p.SortNo.HasValue ? p.SortNo.Value : 0) + 1;
     }
     var columnInfo = new ColumnInfo()
     {
         Code     = GetCode(),
         ParentId = input.ColumnInfo.ParentId,
         Title    = input.ColumnInfo.Title,
         SortNo   = input.ColumnInfo.SortNo,
         IsActive = input.ColumnInfo.IsActive,
         IsNeedAuthorizeAccess = input.ColumnInfo.IsNeedAuthorizeAccess,
         Description           = input.ColumnInfo.Description,
         Introduction          = input.ColumnInfo.Introduction,
         IconCls       = input.ColumnInfo.IconCls,
         Url           = input.ColumnInfo.Url,
         MaxItemCount  = input.ColumnInfo.MaxItemCount,
         ColumnType    = input.ColumnInfo.ColumnType,
         IsStatic      = input.ColumnInfo.IsStatic,
         CreatorUserId = AbpSession.UserId,
         CreationTime  = Clock.Now,
         TenantId      = AbpSession.TenantId
     };
     await _columnInfoRepository.InsertAsync(columnInfo);
 }
        protected virtual async Task UpdateColumnInfoAsync(CreateOrUpdateColumnInfoDto input)
        {
            Debug.Assert(input.ColumnInfo.Id != null, "必须设置input.ColumnInfo.Id的值");

            var columnInfo = await _columnInfoRepository.GetAsync(input.ColumnInfo.Id.Value);

            if (input.ColumnInfo.Title != columnInfo.Title)
            {
                if (_columnInfoRepository.GetAll().Any(p => p.Title == input.ColumnInfo.Title))
                {
                    throw new UserFriendlyException(L("TitleExist"));
                }
            }

            columnInfo.ParentId = input.ColumnInfo.ParentId;
            columnInfo.Title    = input.ColumnInfo.Title;
            columnInfo.SortNo   = input.ColumnInfo.SortNo;
            columnInfo.IsActive = input.ColumnInfo.IsActive;
            columnInfo.IsNeedAuthorizeAccess = input.ColumnInfo.IsNeedAuthorizeAccess;
            columnInfo.Description           = input.ColumnInfo.Description;
            columnInfo.Introduction          = input.ColumnInfo.Introduction;
            columnInfo.IconCls      = input.ColumnInfo.IconCls;
            columnInfo.Url          = input.ColumnInfo.Url;
            columnInfo.MaxItemCount = input.ColumnInfo.MaxItemCount;
            columnInfo.ColumnType   = input.ColumnInfo.ColumnType;
            columnInfo.IsStatic     = input.ColumnInfo.IsStatic;
        }
 public async Task CreateOrUpdateColumnInfo(CreateOrUpdateColumnInfoDto input)
 {
     if (!input.ColumnInfo.Id.HasValue)
     {
         await CreateColumnInfoAsync(input);
     }
     else
     {
         await UpdateColumnInfoAsync(input);
     }
 }