public void UpdateApiResource(int id, ApiResourceDto apiResourceDto) { ApiResource apiResource = this.Session.Get <ApiResource>(id); apiResource = apiResourceDto.ToEntity(apiResource); if (!CanInsertApiResource(apiResource)) { throw new FluentValidationException("ApiResource名称重复。"); } var transaction = this.Session.BeginTransaction(); try { this.Session.Update(apiResource); this.Session.CreateQuery("delete from ApiClaim where ApiResourceId=:ApiResourceId") .SetInt32("ApiResourceId", id) .ExecuteUpdate(); apiResourceDto.UserClaims.ForEach(type => { ApiClaim apiClaim = new ApiClaim(); apiClaim.ApiResourceId = apiResource.Id; apiClaim.Type = type; this.Session.Save(apiClaim); }); transaction.Commit(); } catch (Exception ex) { transaction.Rollback(); throw ex; } }
public void AddApiResource(ApiResourceDto apiResourceDto) { ApiResource apiResource = apiResourceDto.ToEntity(); if (!CanInsertApiResource(apiResource)) { throw new FluentValidationException("ApiResource名称重复。"); } var transaction = this.Session.BeginTransaction(); try { this.Session.Save(apiResource); apiResourceDto.UserClaims.ForEach(type => { ApiClaim apiClaim = new ApiClaim(); apiClaim.ApiResourceId = apiResource.Id; apiClaim.Type = type; this.Session.Save(apiClaim); }); transaction.Commit(); } catch (Exception ex) { transaction.Rollback(); throw ex; } }
public async Task <ApiResponse> CreateApiResourceAsync(ApiResourceDto apiResourceDto) { var apiResource = apiResourceDto.ToEntity(); await _configurationDbContext.ApiResources.AddAsync(apiResource); await _configurationDbContext.SaveChangesAsync(); return(new ApiResponse(Status200OK, L["API Resource {0} created", apiResourceDto.Name], apiResourceDto)); }
public virtual async Task <int> DeleteApiResourceAsync(ApiResourceDto apiResource) { var resource = apiResource.ToEntity(); var deleted = await ApiResourceRepository.DeleteApiResourceAsync(resource); await AuditEventLogger.LogEventAsync(new ApiResourceDeletedEvent(apiResource)); return(deleted); }
/// <summary> /// 修改Api资源 /// </summary> /// <param name="dto">Api资源参数</param> public async Task UpdateAsync(ApiResourceDto dto) { var entity = dto.ToEntity(); await ValidateUpdateAsync(entity); await ApiResourceRepository.UpdateAsync(entity); await UnitOfWork.CommitAsync(); }
public async Task <int> UpdateApiResourceAsync(ApiResourceDto apiResource) { var canInsert = await CanInsertApiResourceAsync(apiResource); if (!canInsert) { throw new UserFriendlyViewException(string.Format(_apiResourceServiceResources.ApiResourceExistsValue().Description, apiResource.Name), _apiResourceServiceResources.ApiResourceExistsKey().Description, apiResource); } var resource = apiResource.ToEntity(); return(await _apiResourceRepository.UpdateApiResourceAsync(resource)); }
/// <summary> /// 创建Api资源 /// </summary> /// <param name="dto">Api资源参数</param> public async Task <Guid> CreateAsync(ApiResourceDto dto) { var entity = dto.ToEntity(); await ValidateCreateAsync(entity); entity.Init(); await ApiResourceRepository.AddAsync(entity); await UnitOfWork.CommitAsync(); return(entity.Id); }
public virtual async Task <int> AddApiResourceAsync(ApiResourceDto apiResource) { var canInsert = await CanInsertApiResourceAsync(apiResource); if (!canInsert) { throw new UserFriendlyViewException(string.Format(ApiResourceServiceResources.ApiResourceExistsValue().Description, apiResource.Name), ApiResourceServiceResources.ApiResourceExistsKey().Description, apiResource); } var resource = apiResource.ToEntity(); var added = await ApiResourceRepository.AddApiResourceAsync(resource); await AuditEventLogger.LogEventAsync(new ApiResourceAddedEvent(apiResource)); return(added); }
public async Task <ApiResponse> UpdateApiResourceAsync(ApiResourceDto apiResourceDto) { //Name is not the primary key, but a unique index and ApiResourceDto does not contain the real key Id. //So in UI I have to use Name as a key and I make it read only. var apiResource = await _configurationDbContext.ApiResources.SingleOrDefaultAsync(i => i.Name == apiResourceDto.Name); if (apiResource == null) { return(new ApiResponse(Status400BadRequest, L["The API resource {0} doesn't exist", apiResourceDto.Name])); } _configurationDbContext.ApiResources.Remove(apiResource); _configurationDbContext.ApiResources.Add(apiResourceDto.ToEntity()); await _configurationDbContext.SaveChangesAsync(); return(new ApiResponse(Status200OK, L["API Resource {0} updated", apiResourceDto.Name], apiResourceDto)); }
public virtual async Task <bool> CanInsertApiResourceAsync(ApiResourceDto apiResource) { var resource = apiResource.ToEntity(); return(await ApiResourceRepository.CanInsertApiResourceAsync(resource)); }
public async Task <int> DeleteApiResourceAsync(ApiResourceDto apiResource) { var resource = apiResource.ToEntity(); return(await _apiResourceRepository.DeleteApiResourceAsync(resource)); }