public async Task EnsurePermission(string permissionId) { var permission = await GetPermissionById(permissionId); if (permission == null) { permission = new OspPermission { PermissionId = permissionId }; await StorePermissionAsync(permission); } }
public async Task StorePermissionAsync(OspPermission ospPermission) { ArgumentValidation.Validate(nameof(ospPermission), ospPermission); var session = await _repository.StartSessionAsync(); session.StartTransaction(); var persistentPermission = await GetPermissionById(ospPermission.PermissionId); if (persistentPermission == null) { await _permissionCollection.InsertAsync(session, ospPermission); } else { await _permissionCollection.ReplaceByIdAsync(session, persistentPermission.Id, ospPermission); } await session.CommitTransactionAsync(); }