コード例 #1
0
        private void AssignLocalId(OperationContainer operation)
        {
            if (operation.Resource.LocalId != null)
            {
                ResourceContext resourceContext = _resourceContextProvider.GetResourceContext(operation.Resource.GetType());

                _localIdTracker.Assign(operation.Resource.LocalId, resourceContext.PublicName, "placeholder");
            }
        }
コード例 #2
0
        private void AssignLocalId(OperationContainer operation)
        {
            if (operation.Resource.LocalId != null)
            {
                var resourceContext =
                    _resourceContextProvider.GetResourceContext(operation.Resource.GetType());

                _localIdTracker.Assign(operation.Resource.LocalId, resourceContext.PublicName, string.Empty);
            }
        }
コード例 #3
0
        /// <inheritdoc />
        public virtual async Task <OperationContainer> ProcessAsync(OperationContainer operation, CancellationToken cancellationToken)
        {
            ArgumentGuard.NotNull(operation, nameof(operation));

            TResource newResource = await _service.CreateAsync((TResource)operation.Resource, cancellationToken);

            if (operation.Resource.LocalId != null)
            {
                string          serverId        = newResource != null ? newResource.StringId : operation.Resource.StringId;
                ResourceContext resourceContext = _resourceContextProvider.GetResourceContext <TResource>();

                _localIdTracker.Assign(operation.Resource.LocalId, resourceContext.PublicName, serverId);
            }

            return(newResource == null ? null : operation.WithResource(newResource));
        }