/// <inheritdoc />
        public async Task <bool> Add(string owner, ResourceSet resourceSet, CancellationToken cancellationToken)
        {
            await using var session = _sessionFactory();
            session.Store(OwnedResourceSet.FromResourceSet(resourceSet, owner));
            await session.SaveChangesAsync(cancellationToken).ConfigureAwait(false);

            return(true);
        }
        /// <inheritdoc />
        public async Task <Option> Update(ResourceSet resourceSet, CancellationToken cancellationToken)
        {
            await using var session = _sessionFactory();
            var existing = await session.LoadAsync <OwnedResourceSet>(resourceSet.Id, cancellationToken).ConfigureAwait(false);

            if (existing == null)
            {
                return(new ErrorDetails
                {
                    Status = HttpStatusCode.NotFound,
                    Title = ErrorCodes.NotUpdated,
                    Detail = SharedStrings.ResourceCannotBeUpdated
                });
            }
            session.Update(OwnedResourceSet.FromResourceSet(resourceSet, existing.Owner));
            await session.SaveChangesAsync(cancellationToken).ConfigureAwait(false);

            return(new Option.Success());
        }