Esempio n. 1
0
        /// <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));
        }
Esempio n. 2
0
 public Task <string> CreateAsync(CreateEndpointData data, CancellationToken?cancellationToken = default(CancellationToken?))
 {
     return(_context.Invoke(f => f.CreateAsync(data, cancellationToken)));
 }