private async Task <Either <Error, int> > EnsureMediaCollectionExists(CancellationToken cancellationToken) { var mediaCollectionsApi = new MediaCollectionsApi(_serverUrl); Option <MediaCollectionViewModel> maybeExisting = (await mediaCollectionsApi.ApiMediaCollectionsGetAsync(cancellationToken)) .SingleOrDefault(mc => mc.Name == Name); return(await maybeExisting.MatchAsync( existing => existing.Id, async() => { var data = new CreateSimpleMediaCollection(Name); MediaCollectionViewModel result = await mediaCollectionsApi.ApiMediaCollectionsPostAsync(data, cancellationToken); return result.Id; })); }
private async Task <Either <Error, Unit> > EnsureMediaCollectionExists(CancellationToken cancellationToken) { var mediaCollectionsApi = new MediaCollectionsApi(_serverUrl); bool needToAdd = await mediaCollectionsApi .ApiMediaCollectionsGetAsync(cancellationToken) .Map(list => list.All(mc => mc.Name != Name)); if (needToAdd) { var data = new CreateSimpleMediaCollection(Name); await mediaCollectionsApi.ApiMediaCollectionsPostAsync(data, cancellationToken); _logger.LogInformation("Successfully created media collection {MediaCollection}", Name); } else { _logger.LogInformation("Media collection {MediaCollection} is already present", Name); } return(unit); }
/// <summary> /// /// </summary> /// <exception cref="ErsatzTV.Api.Sdk.Client.ApiException">Thrown when fails to make API call</exception> /// <param name="createSimpleMediaCollection"></param> /// <returns>ApiResponse of MediaCollectionViewModel</returns> public ErsatzTV.Api.Sdk.Client.ApiResponse <MediaCollectionViewModel> ApiMediaCollectionsPostWithHttpInfo(CreateSimpleMediaCollection createSimpleMediaCollection) { // verify the required parameter 'createSimpleMediaCollection' is set if (createSimpleMediaCollection == null) { throw new ErsatzTV.Api.Sdk.Client.ApiException(400, "Missing required parameter 'createSimpleMediaCollection' when calling MediaCollectionsApi->ApiMediaCollectionsPost"); } ErsatzTV.Api.Sdk.Client.RequestOptions localVarRequestOptions = new ErsatzTV.Api.Sdk.Client.RequestOptions(); String[] _contentTypes = new String[] { "application/json-patch+json", "application/json", "text/json", "application/_*+json" }; // to determine the Accept header String[] _accepts = new String[] { "application/json" }; var localVarContentType = ErsatzTV.Api.Sdk.Client.ClientUtils.SelectHeaderContentType(_contentTypes); if (localVarContentType != null) { localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType); } var localVarAccept = ErsatzTV.Api.Sdk.Client.ClientUtils.SelectHeaderAccept(_accepts); if (localVarAccept != null) { localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept); } localVarRequestOptions.Data = createSimpleMediaCollection; // make the HTTP request var localVarResponse = this.Client.Post <MediaCollectionViewModel>("/api/media/collections", localVarRequestOptions, this.Configuration); if (this.ExceptionFactory != null) { Exception _exception = this.ExceptionFactory("ApiMediaCollectionsPost", localVarResponse); if (_exception != null) { throw _exception; } } return(localVarResponse); }
/// <summary> /// /// </summary> /// <exception cref="ErsatzTV.Api.Sdk.Client.ApiException">Thrown when fails to make API call</exception> /// <param name="createSimpleMediaCollection"></param> /// <returns>MediaCollectionViewModel</returns> public MediaCollectionViewModel ApiMediaCollectionsPost(CreateSimpleMediaCollection createSimpleMediaCollection) { ErsatzTV.Api.Sdk.Client.ApiResponse <MediaCollectionViewModel> localVarResponse = ApiMediaCollectionsPostWithHttpInfo(createSimpleMediaCollection); return(localVarResponse.Data); }
/// <summary> /// /// </summary> /// <exception cref="ErsatzTV.Api.Sdk.Client.ApiException">Thrown when fails to make API call</exception> /// <param name="createSimpleMediaCollection"></param> /// <param name="cancellationToken">Cancellation Token to cancel the request.</param> /// <returns>Task of MediaCollectionViewModel</returns> public async System.Threading.Tasks.Task <MediaCollectionViewModel> ApiMediaCollectionsPostAsync(CreateSimpleMediaCollection createSimpleMediaCollection, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { ErsatzTV.Api.Sdk.Client.ApiResponse <MediaCollectionViewModel> localVarResponse = await ApiMediaCollectionsPostWithHttpInfoAsync(createSimpleMediaCollection, cancellationToken).ConfigureAwait(false); return(localVarResponse.Data); }