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);
        }
Пример #3
0
        /// <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);
        }
Пример #4
0
 /// <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);
 }
Пример #5
0
        /// <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);
        }