/// <summary> /// 删除项目模板信息信息 /// </summary> /// <param name="ids">要删除的项目模板信息编号</param> /// <returns>业务操作结果</returns> public async Task <OperationResult> DeleteCodeProjectTemplates(params Guid[] ids) { UnitOfWork.EnableTransaction(); OperationResult result = await ProjectTemplateRepository.DeleteAsync(ids); await UnitOfWork.CommitAsync(); return(result); }
/// <summary> /// 更新项目模板信息信息 /// </summary> /// <param name="dtos">包含更新信息的项目模板信息DTO信息</param> /// <returns>业务操作结果</returns> public async Task <OperationResult> UpdateCodeProjectTemplates(params CodeProjectTemplateInputDto[] dtos) { string pName = null; List <string> names = new List <string>(); UnitOfWork.EnableTransaction(); foreach (CodeProjectTemplateInputDto dto in dtos) { dto.Validate(); CodeProject project = await ProjectRepository.GetAsync(dto.ProjectId); if (project == null) { throw new OsharpException($"编号为“{dto.ProjectId}”的项目信息不存在"); } pName ??= project.Name; CodeTemplate template = await TemplateRepository.GetAsync(dto.TemplateId); if (template == null) { throw new OsharpException($"编号为“{dto.TemplateId}”的模板信息不存在"); } if (await CheckCodeProjectTemplateExists(m => m.ProjectId == dto.ProjectId && m.TemplateId == dto.TemplateId, dto.Id)) { throw new OsharpException($"项目“{project.Name}”中模板“{template.Name}”已存在,不能重复添加"); } int count = 0; if (dto.Id == default) { CodeProjectTemplate projectTemplate = dto.MapTo <CodeProjectTemplate>(); count = await ProjectTemplateRepository.InsertAsync(projectTemplate); } else { CodeProjectTemplate projectTemplate = await ProjectTemplateRepository.GetAsync(dto.Id); projectTemplate = dto.MapTo(projectTemplate); count = await ProjectTemplateRepository.UpdateAsync(projectTemplate); } if (count > 0) { names.Add(template.Name); } } await UnitOfWork.CommitAsync(); return(names.Count > 0 ? new OperationResult(OperationResultType.Success, $"项目“{pName}”设置模板“{names.ExpandAndToString()}”成功") : OperationResult.NoChanged); }
/// <summary> /// 检查项目模板信息信息是否存在 /// </summary> /// <param name="predicate">检查谓语表达式</param> /// <param name="id">更新的项目模板信息编号</param> /// <returns>项目模板信息是否存在</returns> public Task <bool> CheckCodeProjectTemplateExists(Expression <Func <CodeProjectTemplate, bool> > predicate, Guid id = default) { return(ProjectTemplateRepository.CheckExistsAsync(predicate, id)); }