/// <summary> /// Return Endpoint instance by name or create it if it is missing /// </summary> /// <param name="endpoint">IEndpoint instance</param> /// <param name="data">Options to create an endpoint (property Name is required and used to search enpoint too)</param> /// <param name="cancellationToken">Cancellation token</param> /// <returns>Endpoint instance (existing or created)</returns> public static async Task <Endpoint> GetOrCreateAsync(this IEndpoint endpoint, CreateEndpointData data, CancellationToken?cancellationToken = null) { var existingEndpoint = endpoint.GetByName(data.DomainId, data.Name); if (existingEndpoint != null) { return(existingEndpoint); } var id = await endpoint.CreateAsync(data, cancellationToken); return(await endpoint.GetAsync(data.DomainId, id)); }
public Task <string> CreateAsync(CreateEndpointData data, CancellationToken?cancellationToken = default(CancellationToken?)) { return(_context.Invoke(f => f.CreateAsync(data, cancellationToken))); }