コード例 #1
0
        public async Task EnsurePermission(string permissionId)
        {
            var permission = await GetPermissionById(permissionId);

            if (permission == null)
            {
                permission = new OspPermission
                {
                    PermissionId = permissionId
                };
                await StorePermissionAsync(permission);
            }
        }
コード例 #2
0
        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();
        }