/// <inheritdoc /> public virtual async Task <OperationContainer> ProcessAsync(OperationContainer operation, CancellationToken cancellationToken) { ArgumentGuard.NotNull(operation, nameof(operation)); var resource = (TResource)operation.Resource; TResource updated = await _service.UpdateAsync(resource.Id, resource, cancellationToken); return(updated == null ? null : operation.WithResource(updated)); }
/// <inheritdoc /> public virtual async Task <OperationContainer> ProcessAsync(OperationContainer operation, CancellationToken cancellationToken) { if (operation == null) { throw new ArgumentNullException(nameof(operation)); } var resource = (TResource)operation.Resource; var updated = await _service.UpdateAsync(resource.Id, resource, cancellationToken); return(updated == null ? null : operation.WithResource(updated)); }
/// <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)); }