private static async Task <CodeEntity> GetOrAddEntity(IDataContract contract, Guid moduleId, CodeEntity en) { CodeEntity entity = contract.CodeEntities.FirstOrDefault(m => m.ModuleId == moduleId && m.Name == en.Name && m.Display == en.Display); if (entity != null) { return(entity); } CodeEntityInputDto dto = new CodeEntityInputDto() { Name = en.Name, Display = en.Display, PrimaryKeyTypeFullName = en.PrimaryKeyTypeFullName, Icon = en.Icon, Listable = en.Listable, Addable = en.Addable, Updatable = en.Updatable, Deletable = en.Deletable, IsDataAuth = en.IsDataAuth, HasCreatedTime = en.HasCreatedTime, HasLocked = en.HasLocked, HasSoftDeleted = en.HasSoftDeleted, HasCreationAudited = en.HasCreationAudited, HasUpdateAudited = en.HasUpdateAudited, IsLocked = en.IsLocked, ModuleId = moduleId }; await contract.UpdateCodeEntities(dto); entity = contract.CodeEntities.First(m => m.ModuleId == moduleId && m.Name == en.Name && m.Display == en.Display); return(entity); }
public async void Save() { if (!CanSave) { Helper.Notify("实体信息验证失败", NotificationType.Warning); return; } for (int i = 0; i < Entities.Count; i++) { Entities[i].Order = i + 1; } CodeEntityInputDto[] dtos = Entities.Select(m => m.MapTo <CodeEntityInputDto>()).ToArray(); OperationResult result = null; await _provider.ExecuteScopedWorkAsync(async provider => { IDataContract contract = provider.GetRequiredService <IDataContract>(); result = await contract.UpdateCodeEntities(dtos); }); Helper.Notify(result); if (!result.Succeeded) { return; } Init(); }