public async void EditSave() { MainViewModel main = IoC.Get <MainViewModel>(); if (!await ValidateAsync()) { await main.Notify("项目信息验证失败", NotificationType.Warning); return; } CodeProjectInputDto dto = this.MapTo <CodeProjectInputDto>(); OperationResult result = null; await _serviceProvider.ExecuteScopedWorkAsync(async provider => { IDataContract contract = provider.GetRequiredService <IDataContract>(); result = dto.Id == default ? await contract.CreateCodeProjects(dto) : await contract.UpdateCodeProjects(dto); }); Helper.Notify(result); if (!result.Succeeded) { return; } ProjectListViewModel list = main.ProjectList; list.EditingModel = null; list.IsShowEdit = false; list.Init(); }
/// <summary>将种子数据初始化到数据库</summary> protected override void SyncToDatabase(CodeProject[] entities, IServiceProvider provider) { if (entities == null || entities.Length == 0) { return; } IDataContract contract = provider.GetRequiredService <IDataContract>(); var dtos = entities.Select(m => new CodeProjectInputDto() { Id = m.Id, Name = m.Name, NamespacePrefix = m.NamespacePrefix, Company = m.Company, Creator = m.Creator, Copyright = m.Copyright, RootPath = m.RootPath, SiteUrl = m.SiteUrl }).ToArray(); contract.CreateCodeProjects(dtos).GetAwaiter().GetResult(); }
private static async Task <CodeProject> GetOrAddProject(IDataContract contract, CodeProject proj) { CodeProject project = contract.CodeProjects.FirstOrDefault(m => m.Name == proj.Name && m.NamespacePrefix == proj.NamespacePrefix); if (project != null) { return(project); } CodeProjectInputDto projDto = new CodeProjectInputDto() { Name = proj.Name, NamespacePrefix = proj.NamespacePrefix, Company = proj.Company, SiteUrl = proj.SiteUrl, Creator = proj.Creator, Copyright = proj.Copyright }; await contract.CreateCodeProjects(projDto); project = contract.CodeProjects.First(m => m.Name == proj.Name && m.NamespacePrefix == proj.NamespacePrefix); return(project); }