public virtual async Task CreateAsync(DataDictionay dataDictionay) { dataDictionay.Code = await GetNextChildCodeAsync(dataDictionay.ParentId); await ValidateDataDictionayAsync(dataDictionay); await DataDictionayRepository.InsertAsync(dataDictionay); }
public async Task <DataDictionayDto> CreateDataDictionry(CreateDataDictionryInput input) { var dataDictionay = new DataDictionay(AbpSession.TenantId, input.DisplayName, input.ParentId); await _dataDictionayManager.CreateAsync(dataDictionay); await CurrentUnitOfWork.SaveChangesAsync(); return(dataDictionay.MapTo <DataDictionayDto>()); }
/// <summary> /// 验证数据字典的合法性 /// </summary> /// <param name="dataDictionay"></param> /// <returns></returns> protected virtual async Task ValidateDataDictionayAsync(DataDictionay dataDictionay) { var query = (await FindChildrenAsync(dataDictionay.ParentId)) .Where(ou => ou.Id != dataDictionay.Id) .ToList(); if (query.Any(ou => ou.DisplayName == dataDictionay.DisplayName)) { throw new UserFriendlyException(L("OrganizationUnitDuplicateDisplayNameWarning", dataDictionay.DisplayName)); } }
public virtual async Task <string> GetNextChildCodeAsync(long?parentId) { var lastChild = await GetLastChildOrNullAsync(parentId); if (lastChild == null) { var parentCode = parentId != null ? await GetCodeAsync(parentId.Value) : null; return(DataDictionay.AppendCode(parentCode, DataDictionay.CreateCode(1))); } return(DataDictionay.CalculateNextCode(lastChild.Code)); }
public virtual async Task MoveAsync(long id, long?parentId) { var dataDictionay = await DataDictionayRepository.GetAsync(id); if (dataDictionay.ParentId == parentId) { return; } var children = await FindChildrenAsync(id); var oldCode = dataDictionay.Code; dataDictionay.Code = await GetNextChildCodeAsync(parentId); dataDictionay.ParentId = parentId; await ValidateDataDictionayAsync(dataDictionay); //更新 foreach (var child in children) { child.Code = DataDictionay.AppendCode(dataDictionay.Code, DataDictionay.GetRelativeCode(child.Code, oldCode)); } }
public virtual async Task UpdateAsync(DataDictionay dataDictionay) { await ValidateDataDictionayAsync(dataDictionay); await DataDictionayRepository.UpdateAsync(dataDictionay); }