feat: Add duplicate functionality for Wwpc imports

- Implemented DuplicateRequestBuilder to handle duplication requests for Wwpc imports.
- Added DuplicateAsync method in WwpcPromotionService to create a copy of a WwpcSoftware entry with a new name.
- Introduced DuplicateWwpcImportDto for request body validation.
- Updated WwpcImportsController to include a new endpoint for duplicating Wwpc imports.
- Enhanced WwpcImportsQueue to allow duplication of entries via a dialog interface.
- Created WwpcDuplicateDialog component for user input on duplicate names.
- Updated kiota-lock.json and WwpcPendingDtos.cs to reflect new DTOs and service methods.
This commit is contained in:
2026-06-10 18:12:36 +01:00
parent f4a74b54ee
commit fb71b7977f
32 changed files with 1842 additions and 1 deletions

View File

@@ -47,6 +47,7 @@ using Marechai.ApiClient.ResolutionsByScreen;
using Marechai.ApiClient.Screens;
using Marechai.ApiClient.ScreensByMachine;
using Marechai.ApiClient.Search;
using Marechai.ApiClient.Sitemap;
using Marechai.ApiClient.Smartphones;
using Marechai.ApiClient.Software;
using Marechai.ApiClient.SoftwarePlatformsByMachine;
@@ -311,6 +312,11 @@ namespace Marechai.ApiClient
{
get => new global::Marechai.ApiClient.Search.SearchRequestBuilder(PathParameters, RequestAdapter);
}
/// <summary>The sitemap property</summary>
public global::Marechai.ApiClient.Sitemap.SitemapRequestBuilder Sitemap
{
get => new global::Marechai.ApiClient.Sitemap.SitemapRequestBuilder(PathParameters, RequestAdapter);
}
/// <summary>The smartphones property</summary>
public global::Marechai.ApiClient.Smartphones.SmartphonesRequestBuilder Smartphones
{

View File

@@ -0,0 +1,65 @@
// <auto-generated/>
#pragma warning disable CS0618
using Microsoft.Kiota.Abstractions.Extensions;
using Microsoft.Kiota.Abstractions.Serialization;
using System.Collections.Generic;
using System.IO;
using System;
namespace Marechai.ApiClient.Models
{
[global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
#pragma warning disable CS1591
public partial class DuplicateWwpcImportDto : IAdditionalDataHolder, IParsable
#pragma warning restore CS1591
{
/// <summary>Stores additional data not described in the OpenAPI description found when deserializing. Can be used for serialization as well.</summary>
public IDictionary<string, object> AdditionalData { get; set; }
/// <summary>The newName property</summary>
#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
#nullable enable
public string? NewName { get; set; }
#nullable restore
#else
public string NewName { get; set; }
#endif
/// <summary>
/// Instantiates a new <see cref="global::Marechai.ApiClient.Models.DuplicateWwpcImportDto"/> and sets the default values.
/// </summary>
public DuplicateWwpcImportDto()
{
AdditionalData = new Dictionary<string, object>();
}
/// <summary>
/// Creates a new instance of the appropriate class based on discriminator value
/// </summary>
/// <returns>A <see cref="global::Marechai.ApiClient.Models.DuplicateWwpcImportDto"/></returns>
/// <param name="parseNode">The parse node to use to read the discriminator value and create the object</param>
public static global::Marechai.ApiClient.Models.DuplicateWwpcImportDto CreateFromDiscriminatorValue(IParseNode parseNode)
{
if(ReferenceEquals(parseNode, null)) throw new ArgumentNullException(nameof(parseNode));
return new global::Marechai.ApiClient.Models.DuplicateWwpcImportDto();
}
/// <summary>
/// The deserialization information for the current model
/// </summary>
/// <returns>A IDictionary&lt;string, Action&lt;IParseNode&gt;&gt;</returns>
public virtual IDictionary<string, Action<IParseNode>> GetFieldDeserializers()
{
return new Dictionary<string, Action<IParseNode>>
{
{ "newName", n => { NewName = n.GetStringValue(); } },
};
}
/// <summary>
/// Serializes information the current object
/// </summary>
/// <param name="writer">Serialization writer to use to serialize this model</param>
public virtual void Serialize(ISerializationWriter writer)
{
if(ReferenceEquals(writer, null)) throw new ArgumentNullException(nameof(writer));
writer.WriteStringValue("newName", NewName);
writer.WriteAdditionalData(AdditionalData);
}
}
}
#pragma warning restore CS0618

View File

@@ -0,0 +1,41 @@
// <auto-generated/>
#pragma warning disable CS0618
using Marechai.ApiClient.Sitemap.Books.Ids;
using Microsoft.Kiota.Abstractions.Extensions;
using Microsoft.Kiota.Abstractions;
using System.Collections.Generic;
using System.IO;
using System.Threading.Tasks;
using System;
namespace Marechai.ApiClient.Sitemap.Books
{
/// <summary>
/// Builds and executes requests for operations under \sitemap\books
/// </summary>
[global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
public partial class BooksRequestBuilder : BaseRequestBuilder
{
/// <summary>The ids property</summary>
public global::Marechai.ApiClient.Sitemap.Books.Ids.IdsRequestBuilder Ids
{
get => new global::Marechai.ApiClient.Sitemap.Books.Ids.IdsRequestBuilder(PathParameters, RequestAdapter);
}
/// <summary>
/// Instantiates a new <see cref="global::Marechai.ApiClient.Sitemap.Books.BooksRequestBuilder"/> and sets the default values.
/// </summary>
/// <param name="pathParameters">Path parameters for the request</param>
/// <param name="requestAdapter">The request adapter to use to execute the requests.</param>
public BooksRequestBuilder(Dictionary<string, object> pathParameters, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/sitemap/books", pathParameters)
{
}
/// <summary>
/// Instantiates a new <see cref="global::Marechai.ApiClient.Sitemap.Books.BooksRequestBuilder"/> and sets the default values.
/// </summary>
/// <param name="rawUrl">The raw URL to use for the request builder.</param>
/// <param name="requestAdapter">The request adapter to use to execute the requests.</param>
public BooksRequestBuilder(string rawUrl, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/sitemap/books", rawUrl)
{
}
}
}
#pragma warning restore CS0618

View File

@@ -0,0 +1,96 @@
// <auto-generated/>
#pragma warning disable CS0618
using Microsoft.Kiota.Abstractions.Extensions;
using Microsoft.Kiota.Abstractions.Serialization;
using Microsoft.Kiota.Abstractions;
using System.Collections.Generic;
using System.IO;
using System.Threading.Tasks;
using System.Threading;
using System;
namespace Marechai.ApiClient.Sitemap.Books.Ids
{
/// <summary>
/// Builds and executes requests for operations under \sitemap\books\ids
/// </summary>
[global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
public partial class IdsRequestBuilder : BaseRequestBuilder
{
/// <summary>
/// Instantiates a new <see cref="global::Marechai.ApiClient.Sitemap.Books.Ids.IdsRequestBuilder"/> and sets the default values.
/// </summary>
/// <param name="pathParameters">Path parameters for the request</param>
/// <param name="requestAdapter">The request adapter to use to execute the requests.</param>
public IdsRequestBuilder(Dictionary<string, object> pathParameters, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/sitemap/books/ids{?skip*,take*}", pathParameters)
{
}
/// <summary>
/// Instantiates a new <see cref="global::Marechai.ApiClient.Sitemap.Books.Ids.IdsRequestBuilder"/> and sets the default values.
/// </summary>
/// <param name="rawUrl">The raw URL to use for the request builder.</param>
/// <param name="requestAdapter">The request adapter to use to execute the requests.</param>
public IdsRequestBuilder(string rawUrl, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/sitemap/books/ids{?skip*,take*}", rawUrl)
{
}
/// <returns>A List&lt;long&gt;</returns>
/// <param name="cancellationToken">Cancellation token to use when cancelling requests</param>
/// <param name="requestConfiguration">Configuration for the request such as headers, query parameters, and middleware options.</param>
#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
#nullable enable
public async Task<List<long?>?> GetAsync(Action<RequestConfiguration<global::Marechai.ApiClient.Sitemap.Books.Ids.IdsRequestBuilder.IdsRequestBuilderGetQueryParameters>>? requestConfiguration = default, CancellationToken cancellationToken = default)
{
#nullable restore
#else
public async Task<List<long?>> GetAsync(Action<RequestConfiguration<global::Marechai.ApiClient.Sitemap.Books.Ids.IdsRequestBuilder.IdsRequestBuilderGetQueryParameters>> requestConfiguration = default, CancellationToken cancellationToken = default)
{
#endif
var requestInfo = ToGetRequestInformation(requestConfiguration);
var collectionResult = await RequestAdapter.SendPrimitiveCollectionAsync<long?>(requestInfo, default, cancellationToken).ConfigureAwait(false);
return collectionResult?.AsList();
}
/// <returns>A <see cref="RequestInformation"/></returns>
/// <param name="requestConfiguration">Configuration for the request such as headers, query parameters, and middleware options.</param>
#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
#nullable enable
public RequestInformation ToGetRequestInformation(Action<RequestConfiguration<global::Marechai.ApiClient.Sitemap.Books.Ids.IdsRequestBuilder.IdsRequestBuilderGetQueryParameters>>? requestConfiguration = default)
{
#nullable restore
#else
public RequestInformation ToGetRequestInformation(Action<RequestConfiguration<global::Marechai.ApiClient.Sitemap.Books.Ids.IdsRequestBuilder.IdsRequestBuilderGetQueryParameters>> requestConfiguration = default)
{
#endif
var requestInfo = new RequestInformation(Method.GET, UrlTemplate, PathParameters);
requestInfo.Configure(requestConfiguration);
requestInfo.Headers.TryAdd("Accept", "text/plain;q=0.9");
return requestInfo;
}
/// <summary>
/// Returns a request builder with the provided arbitrary URL. Using this method means any other path or query parameters are ignored.
/// </summary>
/// <returns>A <see cref="global::Marechai.ApiClient.Sitemap.Books.Ids.IdsRequestBuilder"/></returns>
/// <param name="rawUrl">The raw URL to use for the request builder.</param>
public global::Marechai.ApiClient.Sitemap.Books.Ids.IdsRequestBuilder WithUrl(string rawUrl)
{
return new global::Marechai.ApiClient.Sitemap.Books.Ids.IdsRequestBuilder(rawUrl, RequestAdapter);
}
[global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
#pragma warning disable CS1591
public partial class IdsRequestBuilderGetQueryParameters
#pragma warning restore CS1591
{
[QueryParameter("skip")]
public int? Skip { get; set; }
[QueryParameter("take")]
public int? Take { get; set; }
}
/// <summary>
/// Configuration for the request such as headers, query parameters, and middleware options.
/// </summary>
[Obsolete("This class is deprecated. Please use the generic RequestConfiguration class generated by the generator.")]
[global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
public partial class IdsRequestBuilderGetRequestConfiguration : RequestConfiguration<global::Marechai.ApiClient.Sitemap.Books.Ids.IdsRequestBuilder.IdsRequestBuilderGetQueryParameters>
{
}
}
}
#pragma warning restore CS0618

View File

@@ -0,0 +1,41 @@
// <auto-generated/>
#pragma warning disable CS0618
using Marechai.ApiClient.Sitemap.Companies.Ids;
using Microsoft.Kiota.Abstractions.Extensions;
using Microsoft.Kiota.Abstractions;
using System.Collections.Generic;
using System.IO;
using System.Threading.Tasks;
using System;
namespace Marechai.ApiClient.Sitemap.Companies
{
/// <summary>
/// Builds and executes requests for operations under \sitemap\companies
/// </summary>
[global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
public partial class CompaniesRequestBuilder : BaseRequestBuilder
{
/// <summary>The ids property</summary>
public global::Marechai.ApiClient.Sitemap.Companies.Ids.IdsRequestBuilder Ids
{
get => new global::Marechai.ApiClient.Sitemap.Companies.Ids.IdsRequestBuilder(PathParameters, RequestAdapter);
}
/// <summary>
/// Instantiates a new <see cref="global::Marechai.ApiClient.Sitemap.Companies.CompaniesRequestBuilder"/> and sets the default values.
/// </summary>
/// <param name="pathParameters">Path parameters for the request</param>
/// <param name="requestAdapter">The request adapter to use to execute the requests.</param>
public CompaniesRequestBuilder(Dictionary<string, object> pathParameters, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/sitemap/companies", pathParameters)
{
}
/// <summary>
/// Instantiates a new <see cref="global::Marechai.ApiClient.Sitemap.Companies.CompaniesRequestBuilder"/> and sets the default values.
/// </summary>
/// <param name="rawUrl">The raw URL to use for the request builder.</param>
/// <param name="requestAdapter">The request adapter to use to execute the requests.</param>
public CompaniesRequestBuilder(string rawUrl, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/sitemap/companies", rawUrl)
{
}
}
}
#pragma warning restore CS0618

View File

@@ -0,0 +1,96 @@
// <auto-generated/>
#pragma warning disable CS0618
using Microsoft.Kiota.Abstractions.Extensions;
using Microsoft.Kiota.Abstractions.Serialization;
using Microsoft.Kiota.Abstractions;
using System.Collections.Generic;
using System.IO;
using System.Threading.Tasks;
using System.Threading;
using System;
namespace Marechai.ApiClient.Sitemap.Companies.Ids
{
/// <summary>
/// Builds and executes requests for operations under \sitemap\companies\ids
/// </summary>
[global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
public partial class IdsRequestBuilder : BaseRequestBuilder
{
/// <summary>
/// Instantiates a new <see cref="global::Marechai.ApiClient.Sitemap.Companies.Ids.IdsRequestBuilder"/> and sets the default values.
/// </summary>
/// <param name="pathParameters">Path parameters for the request</param>
/// <param name="requestAdapter">The request adapter to use to execute the requests.</param>
public IdsRequestBuilder(Dictionary<string, object> pathParameters, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/sitemap/companies/ids{?skip*,take*}", pathParameters)
{
}
/// <summary>
/// Instantiates a new <see cref="global::Marechai.ApiClient.Sitemap.Companies.Ids.IdsRequestBuilder"/> and sets the default values.
/// </summary>
/// <param name="rawUrl">The raw URL to use for the request builder.</param>
/// <param name="requestAdapter">The request adapter to use to execute the requests.</param>
public IdsRequestBuilder(string rawUrl, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/sitemap/companies/ids{?skip*,take*}", rawUrl)
{
}
/// <returns>A List&lt;int&gt;</returns>
/// <param name="cancellationToken">Cancellation token to use when cancelling requests</param>
/// <param name="requestConfiguration">Configuration for the request such as headers, query parameters, and middleware options.</param>
#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
#nullable enable
public async Task<List<int?>?> GetAsync(Action<RequestConfiguration<global::Marechai.ApiClient.Sitemap.Companies.Ids.IdsRequestBuilder.IdsRequestBuilderGetQueryParameters>>? requestConfiguration = default, CancellationToken cancellationToken = default)
{
#nullable restore
#else
public async Task<List<int?>> GetAsync(Action<RequestConfiguration<global::Marechai.ApiClient.Sitemap.Companies.Ids.IdsRequestBuilder.IdsRequestBuilderGetQueryParameters>> requestConfiguration = default, CancellationToken cancellationToken = default)
{
#endif
var requestInfo = ToGetRequestInformation(requestConfiguration);
var collectionResult = await RequestAdapter.SendPrimitiveCollectionAsync<int?>(requestInfo, default, cancellationToken).ConfigureAwait(false);
return collectionResult?.AsList();
}
/// <returns>A <see cref="RequestInformation"/></returns>
/// <param name="requestConfiguration">Configuration for the request such as headers, query parameters, and middleware options.</param>
#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
#nullable enable
public RequestInformation ToGetRequestInformation(Action<RequestConfiguration<global::Marechai.ApiClient.Sitemap.Companies.Ids.IdsRequestBuilder.IdsRequestBuilderGetQueryParameters>>? requestConfiguration = default)
{
#nullable restore
#else
public RequestInformation ToGetRequestInformation(Action<RequestConfiguration<global::Marechai.ApiClient.Sitemap.Companies.Ids.IdsRequestBuilder.IdsRequestBuilderGetQueryParameters>> requestConfiguration = default)
{
#endif
var requestInfo = new RequestInformation(Method.GET, UrlTemplate, PathParameters);
requestInfo.Configure(requestConfiguration);
requestInfo.Headers.TryAdd("Accept", "text/plain;q=0.9");
return requestInfo;
}
/// <summary>
/// Returns a request builder with the provided arbitrary URL. Using this method means any other path or query parameters are ignored.
/// </summary>
/// <returns>A <see cref="global::Marechai.ApiClient.Sitemap.Companies.Ids.IdsRequestBuilder"/></returns>
/// <param name="rawUrl">The raw URL to use for the request builder.</param>
public global::Marechai.ApiClient.Sitemap.Companies.Ids.IdsRequestBuilder WithUrl(string rawUrl)
{
return new global::Marechai.ApiClient.Sitemap.Companies.Ids.IdsRequestBuilder(rawUrl, RequestAdapter);
}
[global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
#pragma warning disable CS1591
public partial class IdsRequestBuilderGetQueryParameters
#pragma warning restore CS1591
{
[QueryParameter("skip")]
public int? Skip { get; set; }
[QueryParameter("take")]
public int? Take { get; set; }
}
/// <summary>
/// Configuration for the request such as headers, query parameters, and middleware options.
/// </summary>
[Obsolete("This class is deprecated. Please use the generic RequestConfiguration class generated by the generator.")]
[global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
public partial class IdsRequestBuilderGetRequestConfiguration : RequestConfiguration<global::Marechai.ApiClient.Sitemap.Companies.Ids.IdsRequestBuilder.IdsRequestBuilderGetQueryParameters>
{
}
}
}
#pragma warning restore CS0618

View File

@@ -0,0 +1,41 @@
// <auto-generated/>
#pragma warning disable CS0618
using Marechai.ApiClient.Sitemap.Documents.Ids;
using Microsoft.Kiota.Abstractions.Extensions;
using Microsoft.Kiota.Abstractions;
using System.Collections.Generic;
using System.IO;
using System.Threading.Tasks;
using System;
namespace Marechai.ApiClient.Sitemap.Documents
{
/// <summary>
/// Builds and executes requests for operations under \sitemap\documents
/// </summary>
[global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
public partial class DocumentsRequestBuilder : BaseRequestBuilder
{
/// <summary>The ids property</summary>
public global::Marechai.ApiClient.Sitemap.Documents.Ids.IdsRequestBuilder Ids
{
get => new global::Marechai.ApiClient.Sitemap.Documents.Ids.IdsRequestBuilder(PathParameters, RequestAdapter);
}
/// <summary>
/// Instantiates a new <see cref="global::Marechai.ApiClient.Sitemap.Documents.DocumentsRequestBuilder"/> and sets the default values.
/// </summary>
/// <param name="pathParameters">Path parameters for the request</param>
/// <param name="requestAdapter">The request adapter to use to execute the requests.</param>
public DocumentsRequestBuilder(Dictionary<string, object> pathParameters, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/sitemap/documents", pathParameters)
{
}
/// <summary>
/// Instantiates a new <see cref="global::Marechai.ApiClient.Sitemap.Documents.DocumentsRequestBuilder"/> and sets the default values.
/// </summary>
/// <param name="rawUrl">The raw URL to use for the request builder.</param>
/// <param name="requestAdapter">The request adapter to use to execute the requests.</param>
public DocumentsRequestBuilder(string rawUrl, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/sitemap/documents", rawUrl)
{
}
}
}
#pragma warning restore CS0618

View File

@@ -0,0 +1,96 @@
// <auto-generated/>
#pragma warning disable CS0618
using Microsoft.Kiota.Abstractions.Extensions;
using Microsoft.Kiota.Abstractions.Serialization;
using Microsoft.Kiota.Abstractions;
using System.Collections.Generic;
using System.IO;
using System.Threading.Tasks;
using System.Threading;
using System;
namespace Marechai.ApiClient.Sitemap.Documents.Ids
{
/// <summary>
/// Builds and executes requests for operations under \sitemap\documents\ids
/// </summary>
[global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
public partial class IdsRequestBuilder : BaseRequestBuilder
{
/// <summary>
/// Instantiates a new <see cref="global::Marechai.ApiClient.Sitemap.Documents.Ids.IdsRequestBuilder"/> and sets the default values.
/// </summary>
/// <param name="pathParameters">Path parameters for the request</param>
/// <param name="requestAdapter">The request adapter to use to execute the requests.</param>
public IdsRequestBuilder(Dictionary<string, object> pathParameters, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/sitemap/documents/ids{?skip*,take*}", pathParameters)
{
}
/// <summary>
/// Instantiates a new <see cref="global::Marechai.ApiClient.Sitemap.Documents.Ids.IdsRequestBuilder"/> and sets the default values.
/// </summary>
/// <param name="rawUrl">The raw URL to use for the request builder.</param>
/// <param name="requestAdapter">The request adapter to use to execute the requests.</param>
public IdsRequestBuilder(string rawUrl, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/sitemap/documents/ids{?skip*,take*}", rawUrl)
{
}
/// <returns>A List&lt;long&gt;</returns>
/// <param name="cancellationToken">Cancellation token to use when cancelling requests</param>
/// <param name="requestConfiguration">Configuration for the request such as headers, query parameters, and middleware options.</param>
#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
#nullable enable
public async Task<List<long?>?> GetAsync(Action<RequestConfiguration<global::Marechai.ApiClient.Sitemap.Documents.Ids.IdsRequestBuilder.IdsRequestBuilderGetQueryParameters>>? requestConfiguration = default, CancellationToken cancellationToken = default)
{
#nullable restore
#else
public async Task<List<long?>> GetAsync(Action<RequestConfiguration<global::Marechai.ApiClient.Sitemap.Documents.Ids.IdsRequestBuilder.IdsRequestBuilderGetQueryParameters>> requestConfiguration = default, CancellationToken cancellationToken = default)
{
#endif
var requestInfo = ToGetRequestInformation(requestConfiguration);
var collectionResult = await RequestAdapter.SendPrimitiveCollectionAsync<long?>(requestInfo, default, cancellationToken).ConfigureAwait(false);
return collectionResult?.AsList();
}
/// <returns>A <see cref="RequestInformation"/></returns>
/// <param name="requestConfiguration">Configuration for the request such as headers, query parameters, and middleware options.</param>
#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
#nullable enable
public RequestInformation ToGetRequestInformation(Action<RequestConfiguration<global::Marechai.ApiClient.Sitemap.Documents.Ids.IdsRequestBuilder.IdsRequestBuilderGetQueryParameters>>? requestConfiguration = default)
{
#nullable restore
#else
public RequestInformation ToGetRequestInformation(Action<RequestConfiguration<global::Marechai.ApiClient.Sitemap.Documents.Ids.IdsRequestBuilder.IdsRequestBuilderGetQueryParameters>> requestConfiguration = default)
{
#endif
var requestInfo = new RequestInformation(Method.GET, UrlTemplate, PathParameters);
requestInfo.Configure(requestConfiguration);
requestInfo.Headers.TryAdd("Accept", "text/plain;q=0.9");
return requestInfo;
}
/// <summary>
/// Returns a request builder with the provided arbitrary URL. Using this method means any other path or query parameters are ignored.
/// </summary>
/// <returns>A <see cref="global::Marechai.ApiClient.Sitemap.Documents.Ids.IdsRequestBuilder"/></returns>
/// <param name="rawUrl">The raw URL to use for the request builder.</param>
public global::Marechai.ApiClient.Sitemap.Documents.Ids.IdsRequestBuilder WithUrl(string rawUrl)
{
return new global::Marechai.ApiClient.Sitemap.Documents.Ids.IdsRequestBuilder(rawUrl, RequestAdapter);
}
[global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
#pragma warning disable CS1591
public partial class IdsRequestBuilderGetQueryParameters
#pragma warning restore CS1591
{
[QueryParameter("skip")]
public int? Skip { get; set; }
[QueryParameter("take")]
public int? Take { get; set; }
}
/// <summary>
/// Configuration for the request such as headers, query parameters, and middleware options.
/// </summary>
[Obsolete("This class is deprecated. Please use the generic RequestConfiguration class generated by the generator.")]
[global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
public partial class IdsRequestBuilderGetRequestConfiguration : RequestConfiguration<global::Marechai.ApiClient.Sitemap.Documents.Ids.IdsRequestBuilder.IdsRequestBuilderGetQueryParameters>
{
}
}
}
#pragma warning restore CS0618

View File

@@ -0,0 +1,41 @@
// <auto-generated/>
#pragma warning disable CS0618
using Marechai.ApiClient.Sitemap.Gpus.Ids;
using Microsoft.Kiota.Abstractions.Extensions;
using Microsoft.Kiota.Abstractions;
using System.Collections.Generic;
using System.IO;
using System.Threading.Tasks;
using System;
namespace Marechai.ApiClient.Sitemap.Gpus
{
/// <summary>
/// Builds and executes requests for operations under \sitemap\gpus
/// </summary>
[global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
public partial class GpusRequestBuilder : BaseRequestBuilder
{
/// <summary>The ids property</summary>
public global::Marechai.ApiClient.Sitemap.Gpus.Ids.IdsRequestBuilder Ids
{
get => new global::Marechai.ApiClient.Sitemap.Gpus.Ids.IdsRequestBuilder(PathParameters, RequestAdapter);
}
/// <summary>
/// Instantiates a new <see cref="global::Marechai.ApiClient.Sitemap.Gpus.GpusRequestBuilder"/> and sets the default values.
/// </summary>
/// <param name="pathParameters">Path parameters for the request</param>
/// <param name="requestAdapter">The request adapter to use to execute the requests.</param>
public GpusRequestBuilder(Dictionary<string, object> pathParameters, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/sitemap/gpus", pathParameters)
{
}
/// <summary>
/// Instantiates a new <see cref="global::Marechai.ApiClient.Sitemap.Gpus.GpusRequestBuilder"/> and sets the default values.
/// </summary>
/// <param name="rawUrl">The raw URL to use for the request builder.</param>
/// <param name="requestAdapter">The request adapter to use to execute the requests.</param>
public GpusRequestBuilder(string rawUrl, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/sitemap/gpus", rawUrl)
{
}
}
}
#pragma warning restore CS0618

View File

@@ -0,0 +1,96 @@
// <auto-generated/>
#pragma warning disable CS0618
using Microsoft.Kiota.Abstractions.Extensions;
using Microsoft.Kiota.Abstractions.Serialization;
using Microsoft.Kiota.Abstractions;
using System.Collections.Generic;
using System.IO;
using System.Threading.Tasks;
using System.Threading;
using System;
namespace Marechai.ApiClient.Sitemap.Gpus.Ids
{
/// <summary>
/// Builds and executes requests for operations under \sitemap\gpus\ids
/// </summary>
[global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
public partial class IdsRequestBuilder : BaseRequestBuilder
{
/// <summary>
/// Instantiates a new <see cref="global::Marechai.ApiClient.Sitemap.Gpus.Ids.IdsRequestBuilder"/> and sets the default values.
/// </summary>
/// <param name="pathParameters">Path parameters for the request</param>
/// <param name="requestAdapter">The request adapter to use to execute the requests.</param>
public IdsRequestBuilder(Dictionary<string, object> pathParameters, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/sitemap/gpus/ids{?skip*,take*}", pathParameters)
{
}
/// <summary>
/// Instantiates a new <see cref="global::Marechai.ApiClient.Sitemap.Gpus.Ids.IdsRequestBuilder"/> and sets the default values.
/// </summary>
/// <param name="rawUrl">The raw URL to use for the request builder.</param>
/// <param name="requestAdapter">The request adapter to use to execute the requests.</param>
public IdsRequestBuilder(string rawUrl, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/sitemap/gpus/ids{?skip*,take*}", rawUrl)
{
}
/// <returns>A List&lt;int&gt;</returns>
/// <param name="cancellationToken">Cancellation token to use when cancelling requests</param>
/// <param name="requestConfiguration">Configuration for the request such as headers, query parameters, and middleware options.</param>
#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
#nullable enable
public async Task<List<int?>?> GetAsync(Action<RequestConfiguration<global::Marechai.ApiClient.Sitemap.Gpus.Ids.IdsRequestBuilder.IdsRequestBuilderGetQueryParameters>>? requestConfiguration = default, CancellationToken cancellationToken = default)
{
#nullable restore
#else
public async Task<List<int?>> GetAsync(Action<RequestConfiguration<global::Marechai.ApiClient.Sitemap.Gpus.Ids.IdsRequestBuilder.IdsRequestBuilderGetQueryParameters>> requestConfiguration = default, CancellationToken cancellationToken = default)
{
#endif
var requestInfo = ToGetRequestInformation(requestConfiguration);
var collectionResult = await RequestAdapter.SendPrimitiveCollectionAsync<int?>(requestInfo, default, cancellationToken).ConfigureAwait(false);
return collectionResult?.AsList();
}
/// <returns>A <see cref="RequestInformation"/></returns>
/// <param name="requestConfiguration">Configuration for the request such as headers, query parameters, and middleware options.</param>
#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
#nullable enable
public RequestInformation ToGetRequestInformation(Action<RequestConfiguration<global::Marechai.ApiClient.Sitemap.Gpus.Ids.IdsRequestBuilder.IdsRequestBuilderGetQueryParameters>>? requestConfiguration = default)
{
#nullable restore
#else
public RequestInformation ToGetRequestInformation(Action<RequestConfiguration<global::Marechai.ApiClient.Sitemap.Gpus.Ids.IdsRequestBuilder.IdsRequestBuilderGetQueryParameters>> requestConfiguration = default)
{
#endif
var requestInfo = new RequestInformation(Method.GET, UrlTemplate, PathParameters);
requestInfo.Configure(requestConfiguration);
requestInfo.Headers.TryAdd("Accept", "text/plain;q=0.9");
return requestInfo;
}
/// <summary>
/// Returns a request builder with the provided arbitrary URL. Using this method means any other path or query parameters are ignored.
/// </summary>
/// <returns>A <see cref="global::Marechai.ApiClient.Sitemap.Gpus.Ids.IdsRequestBuilder"/></returns>
/// <param name="rawUrl">The raw URL to use for the request builder.</param>
public global::Marechai.ApiClient.Sitemap.Gpus.Ids.IdsRequestBuilder WithUrl(string rawUrl)
{
return new global::Marechai.ApiClient.Sitemap.Gpus.Ids.IdsRequestBuilder(rawUrl, RequestAdapter);
}
[global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
#pragma warning disable CS1591
public partial class IdsRequestBuilderGetQueryParameters
#pragma warning restore CS1591
{
[QueryParameter("skip")]
public int? Skip { get; set; }
[QueryParameter("take")]
public int? Take { get; set; }
}
/// <summary>
/// Configuration for the request such as headers, query parameters, and middleware options.
/// </summary>
[Obsolete("This class is deprecated. Please use the generic RequestConfiguration class generated by the generator.")]
[global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
public partial class IdsRequestBuilderGetRequestConfiguration : RequestConfiguration<global::Marechai.ApiClient.Sitemap.Gpus.Ids.IdsRequestBuilder.IdsRequestBuilderGetQueryParameters>
{
}
}
}
#pragma warning restore CS0618

View File

@@ -0,0 +1,96 @@
// <auto-generated/>
#pragma warning disable CS0618
using Microsoft.Kiota.Abstractions.Extensions;
using Microsoft.Kiota.Abstractions.Serialization;
using Microsoft.Kiota.Abstractions;
using System.Collections.Generic;
using System.IO;
using System.Threading.Tasks;
using System.Threading;
using System;
namespace Marechai.ApiClient.Sitemap.Machines.Ids
{
/// <summary>
/// Builds and executes requests for operations under \sitemap\machines\ids
/// </summary>
[global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
public partial class IdsRequestBuilder : BaseRequestBuilder
{
/// <summary>
/// Instantiates a new <see cref="global::Marechai.ApiClient.Sitemap.Machines.Ids.IdsRequestBuilder"/> and sets the default values.
/// </summary>
/// <param name="pathParameters">Path parameters for the request</param>
/// <param name="requestAdapter">The request adapter to use to execute the requests.</param>
public IdsRequestBuilder(Dictionary<string, object> pathParameters, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/sitemap/machines/ids{?skip*,take*}", pathParameters)
{
}
/// <summary>
/// Instantiates a new <see cref="global::Marechai.ApiClient.Sitemap.Machines.Ids.IdsRequestBuilder"/> and sets the default values.
/// </summary>
/// <param name="rawUrl">The raw URL to use for the request builder.</param>
/// <param name="requestAdapter">The request adapter to use to execute the requests.</param>
public IdsRequestBuilder(string rawUrl, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/sitemap/machines/ids{?skip*,take*}", rawUrl)
{
}
/// <returns>A List&lt;int&gt;</returns>
/// <param name="cancellationToken">Cancellation token to use when cancelling requests</param>
/// <param name="requestConfiguration">Configuration for the request such as headers, query parameters, and middleware options.</param>
#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
#nullable enable
public async Task<List<int?>?> GetAsync(Action<RequestConfiguration<global::Marechai.ApiClient.Sitemap.Machines.Ids.IdsRequestBuilder.IdsRequestBuilderGetQueryParameters>>? requestConfiguration = default, CancellationToken cancellationToken = default)
{
#nullable restore
#else
public async Task<List<int?>> GetAsync(Action<RequestConfiguration<global::Marechai.ApiClient.Sitemap.Machines.Ids.IdsRequestBuilder.IdsRequestBuilderGetQueryParameters>> requestConfiguration = default, CancellationToken cancellationToken = default)
{
#endif
var requestInfo = ToGetRequestInformation(requestConfiguration);
var collectionResult = await RequestAdapter.SendPrimitiveCollectionAsync<int?>(requestInfo, default, cancellationToken).ConfigureAwait(false);
return collectionResult?.AsList();
}
/// <returns>A <see cref="RequestInformation"/></returns>
/// <param name="requestConfiguration">Configuration for the request such as headers, query parameters, and middleware options.</param>
#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
#nullable enable
public RequestInformation ToGetRequestInformation(Action<RequestConfiguration<global::Marechai.ApiClient.Sitemap.Machines.Ids.IdsRequestBuilder.IdsRequestBuilderGetQueryParameters>>? requestConfiguration = default)
{
#nullable restore
#else
public RequestInformation ToGetRequestInformation(Action<RequestConfiguration<global::Marechai.ApiClient.Sitemap.Machines.Ids.IdsRequestBuilder.IdsRequestBuilderGetQueryParameters>> requestConfiguration = default)
{
#endif
var requestInfo = new RequestInformation(Method.GET, UrlTemplate, PathParameters);
requestInfo.Configure(requestConfiguration);
requestInfo.Headers.TryAdd("Accept", "text/plain;q=0.9");
return requestInfo;
}
/// <summary>
/// Returns a request builder with the provided arbitrary URL. Using this method means any other path or query parameters are ignored.
/// </summary>
/// <returns>A <see cref="global::Marechai.ApiClient.Sitemap.Machines.Ids.IdsRequestBuilder"/></returns>
/// <param name="rawUrl">The raw URL to use for the request builder.</param>
public global::Marechai.ApiClient.Sitemap.Machines.Ids.IdsRequestBuilder WithUrl(string rawUrl)
{
return new global::Marechai.ApiClient.Sitemap.Machines.Ids.IdsRequestBuilder(rawUrl, RequestAdapter);
}
[global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
#pragma warning disable CS1591
public partial class IdsRequestBuilderGetQueryParameters
#pragma warning restore CS1591
{
[QueryParameter("skip")]
public int? Skip { get; set; }
[QueryParameter("take")]
public int? Take { get; set; }
}
/// <summary>
/// Configuration for the request such as headers, query parameters, and middleware options.
/// </summary>
[Obsolete("This class is deprecated. Please use the generic RequestConfiguration class generated by the generator.")]
[global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
public partial class IdsRequestBuilderGetRequestConfiguration : RequestConfiguration<global::Marechai.ApiClient.Sitemap.Machines.Ids.IdsRequestBuilder.IdsRequestBuilderGetQueryParameters>
{
}
}
}
#pragma warning restore CS0618

View File

@@ -0,0 +1,41 @@
// <auto-generated/>
#pragma warning disable CS0618
using Marechai.ApiClient.Sitemap.Machines.Ids;
using Microsoft.Kiota.Abstractions.Extensions;
using Microsoft.Kiota.Abstractions;
using System.Collections.Generic;
using System.IO;
using System.Threading.Tasks;
using System;
namespace Marechai.ApiClient.Sitemap.Machines
{
/// <summary>
/// Builds and executes requests for operations under \sitemap\machines
/// </summary>
[global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
public partial class MachinesRequestBuilder : BaseRequestBuilder
{
/// <summary>The ids property</summary>
public global::Marechai.ApiClient.Sitemap.Machines.Ids.IdsRequestBuilder Ids
{
get => new global::Marechai.ApiClient.Sitemap.Machines.Ids.IdsRequestBuilder(PathParameters, RequestAdapter);
}
/// <summary>
/// Instantiates a new <see cref="global::Marechai.ApiClient.Sitemap.Machines.MachinesRequestBuilder"/> and sets the default values.
/// </summary>
/// <param name="pathParameters">Path parameters for the request</param>
/// <param name="requestAdapter">The request adapter to use to execute the requests.</param>
public MachinesRequestBuilder(Dictionary<string, object> pathParameters, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/sitemap/machines", pathParameters)
{
}
/// <summary>
/// Instantiates a new <see cref="global::Marechai.ApiClient.Sitemap.Machines.MachinesRequestBuilder"/> and sets the default values.
/// </summary>
/// <param name="rawUrl">The raw URL to use for the request builder.</param>
/// <param name="requestAdapter">The request adapter to use to execute the requests.</param>
public MachinesRequestBuilder(string rawUrl, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/sitemap/machines", rawUrl)
{
}
}
}
#pragma warning restore CS0618

View File

@@ -0,0 +1,96 @@
// <auto-generated/>
#pragma warning disable CS0618
using Microsoft.Kiota.Abstractions.Extensions;
using Microsoft.Kiota.Abstractions.Serialization;
using Microsoft.Kiota.Abstractions;
using System.Collections.Generic;
using System.IO;
using System.Threading.Tasks;
using System.Threading;
using System;
namespace Marechai.ApiClient.Sitemap.Magazines.Ids
{
/// <summary>
/// Builds and executes requests for operations under \sitemap\magazines\ids
/// </summary>
[global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
public partial class IdsRequestBuilder : BaseRequestBuilder
{
/// <summary>
/// Instantiates a new <see cref="global::Marechai.ApiClient.Sitemap.Magazines.Ids.IdsRequestBuilder"/> and sets the default values.
/// </summary>
/// <param name="pathParameters">Path parameters for the request</param>
/// <param name="requestAdapter">The request adapter to use to execute the requests.</param>
public IdsRequestBuilder(Dictionary<string, object> pathParameters, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/sitemap/magazines/ids{?skip*,take*}", pathParameters)
{
}
/// <summary>
/// Instantiates a new <see cref="global::Marechai.ApiClient.Sitemap.Magazines.Ids.IdsRequestBuilder"/> and sets the default values.
/// </summary>
/// <param name="rawUrl">The raw URL to use for the request builder.</param>
/// <param name="requestAdapter">The request adapter to use to execute the requests.</param>
public IdsRequestBuilder(string rawUrl, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/sitemap/magazines/ids{?skip*,take*}", rawUrl)
{
}
/// <returns>A List&lt;long&gt;</returns>
/// <param name="cancellationToken">Cancellation token to use when cancelling requests</param>
/// <param name="requestConfiguration">Configuration for the request such as headers, query parameters, and middleware options.</param>
#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
#nullable enable
public async Task<List<long?>?> GetAsync(Action<RequestConfiguration<global::Marechai.ApiClient.Sitemap.Magazines.Ids.IdsRequestBuilder.IdsRequestBuilderGetQueryParameters>>? requestConfiguration = default, CancellationToken cancellationToken = default)
{
#nullable restore
#else
public async Task<List<long?>> GetAsync(Action<RequestConfiguration<global::Marechai.ApiClient.Sitemap.Magazines.Ids.IdsRequestBuilder.IdsRequestBuilderGetQueryParameters>> requestConfiguration = default, CancellationToken cancellationToken = default)
{
#endif
var requestInfo = ToGetRequestInformation(requestConfiguration);
var collectionResult = await RequestAdapter.SendPrimitiveCollectionAsync<long?>(requestInfo, default, cancellationToken).ConfigureAwait(false);
return collectionResult?.AsList();
}
/// <returns>A <see cref="RequestInformation"/></returns>
/// <param name="requestConfiguration">Configuration for the request such as headers, query parameters, and middleware options.</param>
#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
#nullable enable
public RequestInformation ToGetRequestInformation(Action<RequestConfiguration<global::Marechai.ApiClient.Sitemap.Magazines.Ids.IdsRequestBuilder.IdsRequestBuilderGetQueryParameters>>? requestConfiguration = default)
{
#nullable restore
#else
public RequestInformation ToGetRequestInformation(Action<RequestConfiguration<global::Marechai.ApiClient.Sitemap.Magazines.Ids.IdsRequestBuilder.IdsRequestBuilderGetQueryParameters>> requestConfiguration = default)
{
#endif
var requestInfo = new RequestInformation(Method.GET, UrlTemplate, PathParameters);
requestInfo.Configure(requestConfiguration);
requestInfo.Headers.TryAdd("Accept", "text/plain;q=0.9");
return requestInfo;
}
/// <summary>
/// Returns a request builder with the provided arbitrary URL. Using this method means any other path or query parameters are ignored.
/// </summary>
/// <returns>A <see cref="global::Marechai.ApiClient.Sitemap.Magazines.Ids.IdsRequestBuilder"/></returns>
/// <param name="rawUrl">The raw URL to use for the request builder.</param>
public global::Marechai.ApiClient.Sitemap.Magazines.Ids.IdsRequestBuilder WithUrl(string rawUrl)
{
return new global::Marechai.ApiClient.Sitemap.Magazines.Ids.IdsRequestBuilder(rawUrl, RequestAdapter);
}
[global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
#pragma warning disable CS1591
public partial class IdsRequestBuilderGetQueryParameters
#pragma warning restore CS1591
{
[QueryParameter("skip")]
public int? Skip { get; set; }
[QueryParameter("take")]
public int? Take { get; set; }
}
/// <summary>
/// Configuration for the request such as headers, query parameters, and middleware options.
/// </summary>
[Obsolete("This class is deprecated. Please use the generic RequestConfiguration class generated by the generator.")]
[global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
public partial class IdsRequestBuilderGetRequestConfiguration : RequestConfiguration<global::Marechai.ApiClient.Sitemap.Magazines.Ids.IdsRequestBuilder.IdsRequestBuilderGetQueryParameters>
{
}
}
}
#pragma warning restore CS0618

View File

@@ -0,0 +1,41 @@
// <auto-generated/>
#pragma warning disable CS0618
using Marechai.ApiClient.Sitemap.Magazines.Ids;
using Microsoft.Kiota.Abstractions.Extensions;
using Microsoft.Kiota.Abstractions;
using System.Collections.Generic;
using System.IO;
using System.Threading.Tasks;
using System;
namespace Marechai.ApiClient.Sitemap.Magazines
{
/// <summary>
/// Builds and executes requests for operations under \sitemap\magazines
/// </summary>
[global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
public partial class MagazinesRequestBuilder : BaseRequestBuilder
{
/// <summary>The ids property</summary>
public global::Marechai.ApiClient.Sitemap.Magazines.Ids.IdsRequestBuilder Ids
{
get => new global::Marechai.ApiClient.Sitemap.Magazines.Ids.IdsRequestBuilder(PathParameters, RequestAdapter);
}
/// <summary>
/// Instantiates a new <see cref="global::Marechai.ApiClient.Sitemap.Magazines.MagazinesRequestBuilder"/> and sets the default values.
/// </summary>
/// <param name="pathParameters">Path parameters for the request</param>
/// <param name="requestAdapter">The request adapter to use to execute the requests.</param>
public MagazinesRequestBuilder(Dictionary<string, object> pathParameters, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/sitemap/magazines", pathParameters)
{
}
/// <summary>
/// Instantiates a new <see cref="global::Marechai.ApiClient.Sitemap.Magazines.MagazinesRequestBuilder"/> and sets the default values.
/// </summary>
/// <param name="rawUrl">The raw URL to use for the request builder.</param>
/// <param name="requestAdapter">The request adapter to use to execute the requests.</param>
public MagazinesRequestBuilder(string rawUrl, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/sitemap/magazines", rawUrl)
{
}
}
}
#pragma warning restore CS0618

View File

@@ -0,0 +1,96 @@
// <auto-generated/>
#pragma warning disable CS0618
using Microsoft.Kiota.Abstractions.Extensions;
using Microsoft.Kiota.Abstractions.Serialization;
using Microsoft.Kiota.Abstractions;
using System.Collections.Generic;
using System.IO;
using System.Threading.Tasks;
using System.Threading;
using System;
namespace Marechai.ApiClient.Sitemap.People.Ids
{
/// <summary>
/// Builds and executes requests for operations under \sitemap\people\ids
/// </summary>
[global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
public partial class IdsRequestBuilder : BaseRequestBuilder
{
/// <summary>
/// Instantiates a new <see cref="global::Marechai.ApiClient.Sitemap.People.Ids.IdsRequestBuilder"/> and sets the default values.
/// </summary>
/// <param name="pathParameters">Path parameters for the request</param>
/// <param name="requestAdapter">The request adapter to use to execute the requests.</param>
public IdsRequestBuilder(Dictionary<string, object> pathParameters, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/sitemap/people/ids{?skip*,take*}", pathParameters)
{
}
/// <summary>
/// Instantiates a new <see cref="global::Marechai.ApiClient.Sitemap.People.Ids.IdsRequestBuilder"/> and sets the default values.
/// </summary>
/// <param name="rawUrl">The raw URL to use for the request builder.</param>
/// <param name="requestAdapter">The request adapter to use to execute the requests.</param>
public IdsRequestBuilder(string rawUrl, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/sitemap/people/ids{?skip*,take*}", rawUrl)
{
}
/// <returns>A List&lt;int&gt;</returns>
/// <param name="cancellationToken">Cancellation token to use when cancelling requests</param>
/// <param name="requestConfiguration">Configuration for the request such as headers, query parameters, and middleware options.</param>
#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
#nullable enable
public async Task<List<int?>?> GetAsync(Action<RequestConfiguration<global::Marechai.ApiClient.Sitemap.People.Ids.IdsRequestBuilder.IdsRequestBuilderGetQueryParameters>>? requestConfiguration = default, CancellationToken cancellationToken = default)
{
#nullable restore
#else
public async Task<List<int?>> GetAsync(Action<RequestConfiguration<global::Marechai.ApiClient.Sitemap.People.Ids.IdsRequestBuilder.IdsRequestBuilderGetQueryParameters>> requestConfiguration = default, CancellationToken cancellationToken = default)
{
#endif
var requestInfo = ToGetRequestInformation(requestConfiguration);
var collectionResult = await RequestAdapter.SendPrimitiveCollectionAsync<int?>(requestInfo, default, cancellationToken).ConfigureAwait(false);
return collectionResult?.AsList();
}
/// <returns>A <see cref="RequestInformation"/></returns>
/// <param name="requestConfiguration">Configuration for the request such as headers, query parameters, and middleware options.</param>
#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
#nullable enable
public RequestInformation ToGetRequestInformation(Action<RequestConfiguration<global::Marechai.ApiClient.Sitemap.People.Ids.IdsRequestBuilder.IdsRequestBuilderGetQueryParameters>>? requestConfiguration = default)
{
#nullable restore
#else
public RequestInformation ToGetRequestInformation(Action<RequestConfiguration<global::Marechai.ApiClient.Sitemap.People.Ids.IdsRequestBuilder.IdsRequestBuilderGetQueryParameters>> requestConfiguration = default)
{
#endif
var requestInfo = new RequestInformation(Method.GET, UrlTemplate, PathParameters);
requestInfo.Configure(requestConfiguration);
requestInfo.Headers.TryAdd("Accept", "text/plain;q=0.9");
return requestInfo;
}
/// <summary>
/// Returns a request builder with the provided arbitrary URL. Using this method means any other path or query parameters are ignored.
/// </summary>
/// <returns>A <see cref="global::Marechai.ApiClient.Sitemap.People.Ids.IdsRequestBuilder"/></returns>
/// <param name="rawUrl">The raw URL to use for the request builder.</param>
public global::Marechai.ApiClient.Sitemap.People.Ids.IdsRequestBuilder WithUrl(string rawUrl)
{
return new global::Marechai.ApiClient.Sitemap.People.Ids.IdsRequestBuilder(rawUrl, RequestAdapter);
}
[global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
#pragma warning disable CS1591
public partial class IdsRequestBuilderGetQueryParameters
#pragma warning restore CS1591
{
[QueryParameter("skip")]
public int? Skip { get; set; }
[QueryParameter("take")]
public int? Take { get; set; }
}
/// <summary>
/// Configuration for the request such as headers, query parameters, and middleware options.
/// </summary>
[Obsolete("This class is deprecated. Please use the generic RequestConfiguration class generated by the generator.")]
[global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
public partial class IdsRequestBuilderGetRequestConfiguration : RequestConfiguration<global::Marechai.ApiClient.Sitemap.People.Ids.IdsRequestBuilder.IdsRequestBuilderGetQueryParameters>
{
}
}
}
#pragma warning restore CS0618

View File

@@ -0,0 +1,41 @@
// <auto-generated/>
#pragma warning disable CS0618
using Marechai.ApiClient.Sitemap.People.Ids;
using Microsoft.Kiota.Abstractions.Extensions;
using Microsoft.Kiota.Abstractions;
using System.Collections.Generic;
using System.IO;
using System.Threading.Tasks;
using System;
namespace Marechai.ApiClient.Sitemap.People
{
/// <summary>
/// Builds and executes requests for operations under \sitemap\people
/// </summary>
[global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
public partial class PeopleRequestBuilder : BaseRequestBuilder
{
/// <summary>The ids property</summary>
public global::Marechai.ApiClient.Sitemap.People.Ids.IdsRequestBuilder Ids
{
get => new global::Marechai.ApiClient.Sitemap.People.Ids.IdsRequestBuilder(PathParameters, RequestAdapter);
}
/// <summary>
/// Instantiates a new <see cref="global::Marechai.ApiClient.Sitemap.People.PeopleRequestBuilder"/> and sets the default values.
/// </summary>
/// <param name="pathParameters">Path parameters for the request</param>
/// <param name="requestAdapter">The request adapter to use to execute the requests.</param>
public PeopleRequestBuilder(Dictionary<string, object> pathParameters, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/sitemap/people", pathParameters)
{
}
/// <summary>
/// Instantiates a new <see cref="global::Marechai.ApiClient.Sitemap.People.PeopleRequestBuilder"/> and sets the default values.
/// </summary>
/// <param name="rawUrl">The raw URL to use for the request builder.</param>
/// <param name="requestAdapter">The request adapter to use to execute the requests.</param>
public PeopleRequestBuilder(string rawUrl, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/sitemap/people", rawUrl)
{
}
}
}
#pragma warning restore CS0618

View File

@@ -0,0 +1,96 @@
// <auto-generated/>
#pragma warning disable CS0618
using Microsoft.Kiota.Abstractions.Extensions;
using Microsoft.Kiota.Abstractions.Serialization;
using Microsoft.Kiota.Abstractions;
using System.Collections.Generic;
using System.IO;
using System.Threading.Tasks;
using System.Threading;
using System;
namespace Marechai.ApiClient.Sitemap.Processors.Ids
{
/// <summary>
/// Builds and executes requests for operations under \sitemap\processors\ids
/// </summary>
[global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
public partial class IdsRequestBuilder : BaseRequestBuilder
{
/// <summary>
/// Instantiates a new <see cref="global::Marechai.ApiClient.Sitemap.Processors.Ids.IdsRequestBuilder"/> and sets the default values.
/// </summary>
/// <param name="pathParameters">Path parameters for the request</param>
/// <param name="requestAdapter">The request adapter to use to execute the requests.</param>
public IdsRequestBuilder(Dictionary<string, object> pathParameters, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/sitemap/processors/ids{?skip*,take*}", pathParameters)
{
}
/// <summary>
/// Instantiates a new <see cref="global::Marechai.ApiClient.Sitemap.Processors.Ids.IdsRequestBuilder"/> and sets the default values.
/// </summary>
/// <param name="rawUrl">The raw URL to use for the request builder.</param>
/// <param name="requestAdapter">The request adapter to use to execute the requests.</param>
public IdsRequestBuilder(string rawUrl, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/sitemap/processors/ids{?skip*,take*}", rawUrl)
{
}
/// <returns>A List&lt;int&gt;</returns>
/// <param name="cancellationToken">Cancellation token to use when cancelling requests</param>
/// <param name="requestConfiguration">Configuration for the request such as headers, query parameters, and middleware options.</param>
#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
#nullable enable
public async Task<List<int?>?> GetAsync(Action<RequestConfiguration<global::Marechai.ApiClient.Sitemap.Processors.Ids.IdsRequestBuilder.IdsRequestBuilderGetQueryParameters>>? requestConfiguration = default, CancellationToken cancellationToken = default)
{
#nullable restore
#else
public async Task<List<int?>> GetAsync(Action<RequestConfiguration<global::Marechai.ApiClient.Sitemap.Processors.Ids.IdsRequestBuilder.IdsRequestBuilderGetQueryParameters>> requestConfiguration = default, CancellationToken cancellationToken = default)
{
#endif
var requestInfo = ToGetRequestInformation(requestConfiguration);
var collectionResult = await RequestAdapter.SendPrimitiveCollectionAsync<int?>(requestInfo, default, cancellationToken).ConfigureAwait(false);
return collectionResult?.AsList();
}
/// <returns>A <see cref="RequestInformation"/></returns>
/// <param name="requestConfiguration">Configuration for the request such as headers, query parameters, and middleware options.</param>
#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
#nullable enable
public RequestInformation ToGetRequestInformation(Action<RequestConfiguration<global::Marechai.ApiClient.Sitemap.Processors.Ids.IdsRequestBuilder.IdsRequestBuilderGetQueryParameters>>? requestConfiguration = default)
{
#nullable restore
#else
public RequestInformation ToGetRequestInformation(Action<RequestConfiguration<global::Marechai.ApiClient.Sitemap.Processors.Ids.IdsRequestBuilder.IdsRequestBuilderGetQueryParameters>> requestConfiguration = default)
{
#endif
var requestInfo = new RequestInformation(Method.GET, UrlTemplate, PathParameters);
requestInfo.Configure(requestConfiguration);
requestInfo.Headers.TryAdd("Accept", "text/plain;q=0.9");
return requestInfo;
}
/// <summary>
/// Returns a request builder with the provided arbitrary URL. Using this method means any other path or query parameters are ignored.
/// </summary>
/// <returns>A <see cref="global::Marechai.ApiClient.Sitemap.Processors.Ids.IdsRequestBuilder"/></returns>
/// <param name="rawUrl">The raw URL to use for the request builder.</param>
public global::Marechai.ApiClient.Sitemap.Processors.Ids.IdsRequestBuilder WithUrl(string rawUrl)
{
return new global::Marechai.ApiClient.Sitemap.Processors.Ids.IdsRequestBuilder(rawUrl, RequestAdapter);
}
[global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
#pragma warning disable CS1591
public partial class IdsRequestBuilderGetQueryParameters
#pragma warning restore CS1591
{
[QueryParameter("skip")]
public int? Skip { get; set; }
[QueryParameter("take")]
public int? Take { get; set; }
}
/// <summary>
/// Configuration for the request such as headers, query parameters, and middleware options.
/// </summary>
[Obsolete("This class is deprecated. Please use the generic RequestConfiguration class generated by the generator.")]
[global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
public partial class IdsRequestBuilderGetRequestConfiguration : RequestConfiguration<global::Marechai.ApiClient.Sitemap.Processors.Ids.IdsRequestBuilder.IdsRequestBuilderGetQueryParameters>
{
}
}
}
#pragma warning restore CS0618

View File

@@ -0,0 +1,41 @@
// <auto-generated/>
#pragma warning disable CS0618
using Marechai.ApiClient.Sitemap.Processors.Ids;
using Microsoft.Kiota.Abstractions.Extensions;
using Microsoft.Kiota.Abstractions;
using System.Collections.Generic;
using System.IO;
using System.Threading.Tasks;
using System;
namespace Marechai.ApiClient.Sitemap.Processors
{
/// <summary>
/// Builds and executes requests for operations under \sitemap\processors
/// </summary>
[global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
public partial class ProcessorsRequestBuilder : BaseRequestBuilder
{
/// <summary>The ids property</summary>
public global::Marechai.ApiClient.Sitemap.Processors.Ids.IdsRequestBuilder Ids
{
get => new global::Marechai.ApiClient.Sitemap.Processors.Ids.IdsRequestBuilder(PathParameters, RequestAdapter);
}
/// <summary>
/// Instantiates a new <see cref="global::Marechai.ApiClient.Sitemap.Processors.ProcessorsRequestBuilder"/> and sets the default values.
/// </summary>
/// <param name="pathParameters">Path parameters for the request</param>
/// <param name="requestAdapter">The request adapter to use to execute the requests.</param>
public ProcessorsRequestBuilder(Dictionary<string, object> pathParameters, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/sitemap/processors", pathParameters)
{
}
/// <summary>
/// Instantiates a new <see cref="global::Marechai.ApiClient.Sitemap.Processors.ProcessorsRequestBuilder"/> and sets the default values.
/// </summary>
/// <param name="rawUrl">The raw URL to use for the request builder.</param>
/// <param name="requestAdapter">The request adapter to use to execute the requests.</param>
public ProcessorsRequestBuilder(string rawUrl, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/sitemap/processors", rawUrl)
{
}
}
}
#pragma warning restore CS0618

View File

@@ -0,0 +1,95 @@
// <auto-generated/>
#pragma warning disable CS0618
using Marechai.ApiClient.Sitemap.Books;
using Marechai.ApiClient.Sitemap.Companies;
using Marechai.ApiClient.Sitemap.Documents;
using Marechai.ApiClient.Sitemap.Gpus;
using Marechai.ApiClient.Sitemap.Machines;
using Marechai.ApiClient.Sitemap.Magazines;
using Marechai.ApiClient.Sitemap.People;
using Marechai.ApiClient.Sitemap.Processors;
using Marechai.ApiClient.Sitemap.Software;
using Marechai.ApiClient.Sitemap.SoundSynths;
using Microsoft.Kiota.Abstractions.Extensions;
using Microsoft.Kiota.Abstractions;
using System.Collections.Generic;
using System.IO;
using System.Threading.Tasks;
using System;
namespace Marechai.ApiClient.Sitemap
{
/// <summary>
/// Builds and executes requests for operations under \sitemap
/// </summary>
[global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
public partial class SitemapRequestBuilder : BaseRequestBuilder
{
/// <summary>The books property</summary>
public global::Marechai.ApiClient.Sitemap.Books.BooksRequestBuilder Books
{
get => new global::Marechai.ApiClient.Sitemap.Books.BooksRequestBuilder(PathParameters, RequestAdapter);
}
/// <summary>The companies property</summary>
public global::Marechai.ApiClient.Sitemap.Companies.CompaniesRequestBuilder Companies
{
get => new global::Marechai.ApiClient.Sitemap.Companies.CompaniesRequestBuilder(PathParameters, RequestAdapter);
}
/// <summary>The documents property</summary>
public global::Marechai.ApiClient.Sitemap.Documents.DocumentsRequestBuilder Documents
{
get => new global::Marechai.ApiClient.Sitemap.Documents.DocumentsRequestBuilder(PathParameters, RequestAdapter);
}
/// <summary>The gpus property</summary>
public global::Marechai.ApiClient.Sitemap.Gpus.GpusRequestBuilder Gpus
{
get => new global::Marechai.ApiClient.Sitemap.Gpus.GpusRequestBuilder(PathParameters, RequestAdapter);
}
/// <summary>The machines property</summary>
public global::Marechai.ApiClient.Sitemap.Machines.MachinesRequestBuilder Machines
{
get => new global::Marechai.ApiClient.Sitemap.Machines.MachinesRequestBuilder(PathParameters, RequestAdapter);
}
/// <summary>The magazines property</summary>
public global::Marechai.ApiClient.Sitemap.Magazines.MagazinesRequestBuilder Magazines
{
get => new global::Marechai.ApiClient.Sitemap.Magazines.MagazinesRequestBuilder(PathParameters, RequestAdapter);
}
/// <summary>The people property</summary>
public global::Marechai.ApiClient.Sitemap.People.PeopleRequestBuilder People
{
get => new global::Marechai.ApiClient.Sitemap.People.PeopleRequestBuilder(PathParameters, RequestAdapter);
}
/// <summary>The processors property</summary>
public global::Marechai.ApiClient.Sitemap.Processors.ProcessorsRequestBuilder Processors
{
get => new global::Marechai.ApiClient.Sitemap.Processors.ProcessorsRequestBuilder(PathParameters, RequestAdapter);
}
/// <summary>The software property</summary>
public global::Marechai.ApiClient.Sitemap.Software.SoftwareRequestBuilder Software
{
get => new global::Marechai.ApiClient.Sitemap.Software.SoftwareRequestBuilder(PathParameters, RequestAdapter);
}
/// <summary>The soundSynths property</summary>
public global::Marechai.ApiClient.Sitemap.SoundSynths.SoundSynthsRequestBuilder SoundSynths
{
get => new global::Marechai.ApiClient.Sitemap.SoundSynths.SoundSynthsRequestBuilder(PathParameters, RequestAdapter);
}
/// <summary>
/// Instantiates a new <see cref="global::Marechai.ApiClient.Sitemap.SitemapRequestBuilder"/> and sets the default values.
/// </summary>
/// <param name="pathParameters">Path parameters for the request</param>
/// <param name="requestAdapter">The request adapter to use to execute the requests.</param>
public SitemapRequestBuilder(Dictionary<string, object> pathParameters, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/sitemap", pathParameters)
{
}
/// <summary>
/// Instantiates a new <see cref="global::Marechai.ApiClient.Sitemap.SitemapRequestBuilder"/> and sets the default values.
/// </summary>
/// <param name="rawUrl">The raw URL to use for the request builder.</param>
/// <param name="requestAdapter">The request adapter to use to execute the requests.</param>
public SitemapRequestBuilder(string rawUrl, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/sitemap", rawUrl)
{
}
}
}
#pragma warning restore CS0618

View File

@@ -0,0 +1,96 @@
// <auto-generated/>
#pragma warning disable CS0618
using Microsoft.Kiota.Abstractions.Extensions;
using Microsoft.Kiota.Abstractions.Serialization;
using Microsoft.Kiota.Abstractions;
using System.Collections.Generic;
using System.IO;
using System.Threading.Tasks;
using System.Threading;
using System;
namespace Marechai.ApiClient.Sitemap.Software.Ids
{
/// <summary>
/// Builds and executes requests for operations under \sitemap\software\ids
/// </summary>
[global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
public partial class IdsRequestBuilder : BaseRequestBuilder
{
/// <summary>
/// Instantiates a new <see cref="global::Marechai.ApiClient.Sitemap.Software.Ids.IdsRequestBuilder"/> and sets the default values.
/// </summary>
/// <param name="pathParameters">Path parameters for the request</param>
/// <param name="requestAdapter">The request adapter to use to execute the requests.</param>
public IdsRequestBuilder(Dictionary<string, object> pathParameters, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/sitemap/software/ids{?skip*,take*}", pathParameters)
{
}
/// <summary>
/// Instantiates a new <see cref="global::Marechai.ApiClient.Sitemap.Software.Ids.IdsRequestBuilder"/> and sets the default values.
/// </summary>
/// <param name="rawUrl">The raw URL to use for the request builder.</param>
/// <param name="requestAdapter">The request adapter to use to execute the requests.</param>
public IdsRequestBuilder(string rawUrl, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/sitemap/software/ids{?skip*,take*}", rawUrl)
{
}
/// <returns>A List&lt;int&gt;</returns>
/// <param name="cancellationToken">Cancellation token to use when cancelling requests</param>
/// <param name="requestConfiguration">Configuration for the request such as headers, query parameters, and middleware options.</param>
#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
#nullable enable
public async Task<List<int?>?> GetAsync(Action<RequestConfiguration<global::Marechai.ApiClient.Sitemap.Software.Ids.IdsRequestBuilder.IdsRequestBuilderGetQueryParameters>>? requestConfiguration = default, CancellationToken cancellationToken = default)
{
#nullable restore
#else
public async Task<List<int?>> GetAsync(Action<RequestConfiguration<global::Marechai.ApiClient.Sitemap.Software.Ids.IdsRequestBuilder.IdsRequestBuilderGetQueryParameters>> requestConfiguration = default, CancellationToken cancellationToken = default)
{
#endif
var requestInfo = ToGetRequestInformation(requestConfiguration);
var collectionResult = await RequestAdapter.SendPrimitiveCollectionAsync<int?>(requestInfo, default, cancellationToken).ConfigureAwait(false);
return collectionResult?.AsList();
}
/// <returns>A <see cref="RequestInformation"/></returns>
/// <param name="requestConfiguration">Configuration for the request such as headers, query parameters, and middleware options.</param>
#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
#nullable enable
public RequestInformation ToGetRequestInformation(Action<RequestConfiguration<global::Marechai.ApiClient.Sitemap.Software.Ids.IdsRequestBuilder.IdsRequestBuilderGetQueryParameters>>? requestConfiguration = default)
{
#nullable restore
#else
public RequestInformation ToGetRequestInformation(Action<RequestConfiguration<global::Marechai.ApiClient.Sitemap.Software.Ids.IdsRequestBuilder.IdsRequestBuilderGetQueryParameters>> requestConfiguration = default)
{
#endif
var requestInfo = new RequestInformation(Method.GET, UrlTemplate, PathParameters);
requestInfo.Configure(requestConfiguration);
requestInfo.Headers.TryAdd("Accept", "text/plain;q=0.9");
return requestInfo;
}
/// <summary>
/// Returns a request builder with the provided arbitrary URL. Using this method means any other path or query parameters are ignored.
/// </summary>
/// <returns>A <see cref="global::Marechai.ApiClient.Sitemap.Software.Ids.IdsRequestBuilder"/></returns>
/// <param name="rawUrl">The raw URL to use for the request builder.</param>
public global::Marechai.ApiClient.Sitemap.Software.Ids.IdsRequestBuilder WithUrl(string rawUrl)
{
return new global::Marechai.ApiClient.Sitemap.Software.Ids.IdsRequestBuilder(rawUrl, RequestAdapter);
}
[global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
#pragma warning disable CS1591
public partial class IdsRequestBuilderGetQueryParameters
#pragma warning restore CS1591
{
[QueryParameter("skip")]
public int? Skip { get; set; }
[QueryParameter("take")]
public int? Take { get; set; }
}
/// <summary>
/// Configuration for the request such as headers, query parameters, and middleware options.
/// </summary>
[Obsolete("This class is deprecated. Please use the generic RequestConfiguration class generated by the generator.")]
[global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
public partial class IdsRequestBuilderGetRequestConfiguration : RequestConfiguration<global::Marechai.ApiClient.Sitemap.Software.Ids.IdsRequestBuilder.IdsRequestBuilderGetQueryParameters>
{
}
}
}
#pragma warning restore CS0618

View File

@@ -0,0 +1,41 @@
// <auto-generated/>
#pragma warning disable CS0618
using Marechai.ApiClient.Sitemap.Software.Ids;
using Microsoft.Kiota.Abstractions.Extensions;
using Microsoft.Kiota.Abstractions;
using System.Collections.Generic;
using System.IO;
using System.Threading.Tasks;
using System;
namespace Marechai.ApiClient.Sitemap.Software
{
/// <summary>
/// Builds and executes requests for operations under \sitemap\software
/// </summary>
[global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
public partial class SoftwareRequestBuilder : BaseRequestBuilder
{
/// <summary>The ids property</summary>
public global::Marechai.ApiClient.Sitemap.Software.Ids.IdsRequestBuilder Ids
{
get => new global::Marechai.ApiClient.Sitemap.Software.Ids.IdsRequestBuilder(PathParameters, RequestAdapter);
}
/// <summary>
/// Instantiates a new <see cref="global::Marechai.ApiClient.Sitemap.Software.SoftwareRequestBuilder"/> and sets the default values.
/// </summary>
/// <param name="pathParameters">Path parameters for the request</param>
/// <param name="requestAdapter">The request adapter to use to execute the requests.</param>
public SoftwareRequestBuilder(Dictionary<string, object> pathParameters, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/sitemap/software", pathParameters)
{
}
/// <summary>
/// Instantiates a new <see cref="global::Marechai.ApiClient.Sitemap.Software.SoftwareRequestBuilder"/> and sets the default values.
/// </summary>
/// <param name="rawUrl">The raw URL to use for the request builder.</param>
/// <param name="requestAdapter">The request adapter to use to execute the requests.</param>
public SoftwareRequestBuilder(string rawUrl, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/sitemap/software", rawUrl)
{
}
}
}
#pragma warning restore CS0618

View File

@@ -0,0 +1,96 @@
// <auto-generated/>
#pragma warning disable CS0618
using Microsoft.Kiota.Abstractions.Extensions;
using Microsoft.Kiota.Abstractions.Serialization;
using Microsoft.Kiota.Abstractions;
using System.Collections.Generic;
using System.IO;
using System.Threading.Tasks;
using System.Threading;
using System;
namespace Marechai.ApiClient.Sitemap.SoundSynths.Ids
{
/// <summary>
/// Builds and executes requests for operations under \sitemap\sound-synths\ids
/// </summary>
[global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
public partial class IdsRequestBuilder : BaseRequestBuilder
{
/// <summary>
/// Instantiates a new <see cref="global::Marechai.ApiClient.Sitemap.SoundSynths.Ids.IdsRequestBuilder"/> and sets the default values.
/// </summary>
/// <param name="pathParameters">Path parameters for the request</param>
/// <param name="requestAdapter">The request adapter to use to execute the requests.</param>
public IdsRequestBuilder(Dictionary<string, object> pathParameters, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/sitemap/sound-synths/ids{?skip*,take*}", pathParameters)
{
}
/// <summary>
/// Instantiates a new <see cref="global::Marechai.ApiClient.Sitemap.SoundSynths.Ids.IdsRequestBuilder"/> and sets the default values.
/// </summary>
/// <param name="rawUrl">The raw URL to use for the request builder.</param>
/// <param name="requestAdapter">The request adapter to use to execute the requests.</param>
public IdsRequestBuilder(string rawUrl, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/sitemap/sound-synths/ids{?skip*,take*}", rawUrl)
{
}
/// <returns>A List&lt;int&gt;</returns>
/// <param name="cancellationToken">Cancellation token to use when cancelling requests</param>
/// <param name="requestConfiguration">Configuration for the request such as headers, query parameters, and middleware options.</param>
#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
#nullable enable
public async Task<List<int?>?> GetAsync(Action<RequestConfiguration<global::Marechai.ApiClient.Sitemap.SoundSynths.Ids.IdsRequestBuilder.IdsRequestBuilderGetQueryParameters>>? requestConfiguration = default, CancellationToken cancellationToken = default)
{
#nullable restore
#else
public async Task<List<int?>> GetAsync(Action<RequestConfiguration<global::Marechai.ApiClient.Sitemap.SoundSynths.Ids.IdsRequestBuilder.IdsRequestBuilderGetQueryParameters>> requestConfiguration = default, CancellationToken cancellationToken = default)
{
#endif
var requestInfo = ToGetRequestInformation(requestConfiguration);
var collectionResult = await RequestAdapter.SendPrimitiveCollectionAsync<int?>(requestInfo, default, cancellationToken).ConfigureAwait(false);
return collectionResult?.AsList();
}
/// <returns>A <see cref="RequestInformation"/></returns>
/// <param name="requestConfiguration">Configuration for the request such as headers, query parameters, and middleware options.</param>
#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
#nullable enable
public RequestInformation ToGetRequestInformation(Action<RequestConfiguration<global::Marechai.ApiClient.Sitemap.SoundSynths.Ids.IdsRequestBuilder.IdsRequestBuilderGetQueryParameters>>? requestConfiguration = default)
{
#nullable restore
#else
public RequestInformation ToGetRequestInformation(Action<RequestConfiguration<global::Marechai.ApiClient.Sitemap.SoundSynths.Ids.IdsRequestBuilder.IdsRequestBuilderGetQueryParameters>> requestConfiguration = default)
{
#endif
var requestInfo = new RequestInformation(Method.GET, UrlTemplate, PathParameters);
requestInfo.Configure(requestConfiguration);
requestInfo.Headers.TryAdd("Accept", "text/plain;q=0.9");
return requestInfo;
}
/// <summary>
/// Returns a request builder with the provided arbitrary URL. Using this method means any other path or query parameters are ignored.
/// </summary>
/// <returns>A <see cref="global::Marechai.ApiClient.Sitemap.SoundSynths.Ids.IdsRequestBuilder"/></returns>
/// <param name="rawUrl">The raw URL to use for the request builder.</param>
public global::Marechai.ApiClient.Sitemap.SoundSynths.Ids.IdsRequestBuilder WithUrl(string rawUrl)
{
return new global::Marechai.ApiClient.Sitemap.SoundSynths.Ids.IdsRequestBuilder(rawUrl, RequestAdapter);
}
[global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
#pragma warning disable CS1591
public partial class IdsRequestBuilderGetQueryParameters
#pragma warning restore CS1591
{
[QueryParameter("skip")]
public int? Skip { get; set; }
[QueryParameter("take")]
public int? Take { get; set; }
}
/// <summary>
/// Configuration for the request such as headers, query parameters, and middleware options.
/// </summary>
[Obsolete("This class is deprecated. Please use the generic RequestConfiguration class generated by the generator.")]
[global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
public partial class IdsRequestBuilderGetRequestConfiguration : RequestConfiguration<global::Marechai.ApiClient.Sitemap.SoundSynths.Ids.IdsRequestBuilder.IdsRequestBuilderGetQueryParameters>
{
}
}
}
#pragma warning restore CS0618

View File

@@ -0,0 +1,41 @@
// <auto-generated/>
#pragma warning disable CS0618
using Marechai.ApiClient.Sitemap.SoundSynths.Ids;
using Microsoft.Kiota.Abstractions.Extensions;
using Microsoft.Kiota.Abstractions;
using System.Collections.Generic;
using System.IO;
using System.Threading.Tasks;
using System;
namespace Marechai.ApiClient.Sitemap.SoundSynths
{
/// <summary>
/// Builds and executes requests for operations under \sitemap\sound-synths
/// </summary>
[global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
public partial class SoundSynthsRequestBuilder : BaseRequestBuilder
{
/// <summary>The ids property</summary>
public global::Marechai.ApiClient.Sitemap.SoundSynths.Ids.IdsRequestBuilder Ids
{
get => new global::Marechai.ApiClient.Sitemap.SoundSynths.Ids.IdsRequestBuilder(PathParameters, RequestAdapter);
}
/// <summary>
/// Instantiates a new <see cref="global::Marechai.ApiClient.Sitemap.SoundSynths.SoundSynthsRequestBuilder"/> and sets the default values.
/// </summary>
/// <param name="pathParameters">Path parameters for the request</param>
/// <param name="requestAdapter">The request adapter to use to execute the requests.</param>
public SoundSynthsRequestBuilder(Dictionary<string, object> pathParameters, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/sitemap/sound-synths", pathParameters)
{
}
/// <summary>
/// Instantiates a new <see cref="global::Marechai.ApiClient.Sitemap.SoundSynths.SoundSynthsRequestBuilder"/> and sets the default values.
/// </summary>
/// <param name="rawUrl">The raw URL to use for the request builder.</param>
/// <param name="requestAdapter">The request adapter to use to execute the requests.</param>
public SoundSynthsRequestBuilder(string rawUrl, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/sitemap/sound-synths", rawUrl)
{
}
}
}
#pragma warning restore CS0618

View File

@@ -0,0 +1,98 @@
// <auto-generated/>
#pragma warning disable CS0618
using Marechai.ApiClient.Models;
using Microsoft.Kiota.Abstractions.Extensions;
using Microsoft.Kiota.Abstractions.Serialization;
using Microsoft.Kiota.Abstractions;
using System.Collections.Generic;
using System.IO;
using System.Threading.Tasks;
using System.Threading;
using System;
namespace Marechai.ApiClient.Wwpc.Pending.Item.Duplicate
{
/// <summary>
/// Builds and executes requests for operations under \wwpc\pending\{id}\duplicate
/// </summary>
[global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
public partial class DuplicateRequestBuilder : BaseRequestBuilder
{
/// <summary>
/// Instantiates a new <see cref="global::Marechai.ApiClient.Wwpc.Pending.Item.Duplicate.DuplicateRequestBuilder"/> and sets the default values.
/// </summary>
/// <param name="pathParameters">Path parameters for the request</param>
/// <param name="requestAdapter">The request adapter to use to execute the requests.</param>
public DuplicateRequestBuilder(Dictionary<string, object> pathParameters, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/wwpc/pending/{id}/duplicate", pathParameters)
{
}
/// <summary>
/// Instantiates a new <see cref="global::Marechai.ApiClient.Wwpc.Pending.Item.Duplicate.DuplicateRequestBuilder"/> and sets the default values.
/// </summary>
/// <param name="rawUrl">The raw URL to use for the request builder.</param>
/// <param name="requestAdapter">The request adapter to use to execute the requests.</param>
public DuplicateRequestBuilder(string rawUrl, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/wwpc/pending/{id}/duplicate", rawUrl)
{
}
/// <returns>A <see cref="long"/></returns>
/// <param name="body">The request body</param>
/// <param name="cancellationToken">Cancellation token to use when cancelling requests</param>
/// <param name="requestConfiguration">Configuration for the request such as headers, query parameters, and middleware options.</param>
/// <exception cref="global::Marechai.ApiClient.Models.ProblemDetails">When receiving a 400 status code</exception>
/// <exception cref="global::Marechai.ApiClient.Models.ProblemDetails">When receiving a 404 status code</exception>
#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
#nullable enable
public async Task<long?> PostAsync(global::Marechai.ApiClient.Models.DuplicateWwpcImportDto body, Action<RequestConfiguration<DefaultQueryParameters>>? requestConfiguration = default, CancellationToken cancellationToken = default)
{
#nullable restore
#else
public async Task<long?> PostAsync(global::Marechai.ApiClient.Models.DuplicateWwpcImportDto body, Action<RequestConfiguration<DefaultQueryParameters>> requestConfiguration = default, CancellationToken cancellationToken = default)
{
#endif
if(ReferenceEquals(body, null)) throw new ArgumentNullException(nameof(body));
var requestInfo = ToPostRequestInformation(body, requestConfiguration);
var errorMapping = new Dictionary<string, ParsableFactory<IParsable>>
{
{ "400", global::Marechai.ApiClient.Models.ProblemDetails.CreateFromDiscriminatorValue },
{ "404", global::Marechai.ApiClient.Models.ProblemDetails.CreateFromDiscriminatorValue },
};
return await RequestAdapter.SendPrimitiveAsync<long?>(requestInfo, errorMapping, cancellationToken).ConfigureAwait(false);
}
/// <returns>A <see cref="RequestInformation"/></returns>
/// <param name="body">The request body</param>
/// <param name="requestConfiguration">Configuration for the request such as headers, query parameters, and middleware options.</param>
#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
#nullable enable
public RequestInformation ToPostRequestInformation(global::Marechai.ApiClient.Models.DuplicateWwpcImportDto body, Action<RequestConfiguration<DefaultQueryParameters>>? requestConfiguration = default)
{
#nullable restore
#else
public RequestInformation ToPostRequestInformation(global::Marechai.ApiClient.Models.DuplicateWwpcImportDto body, Action<RequestConfiguration<DefaultQueryParameters>> requestConfiguration = default)
{
#endif
if(ReferenceEquals(body, null)) throw new ArgumentNullException(nameof(body));
var requestInfo = new RequestInformation(Method.POST, UrlTemplate, PathParameters);
requestInfo.Configure(requestConfiguration);
requestInfo.Headers.TryAdd("Accept", "text/plain;q=0.9");
requestInfo.SetContentFromParsable(RequestAdapter, "application/json", body);
return requestInfo;
}
/// <summary>
/// Returns a request builder with the provided arbitrary URL. Using this method means any other path or query parameters are ignored.
/// </summary>
/// <returns>A <see cref="global::Marechai.ApiClient.Wwpc.Pending.Item.Duplicate.DuplicateRequestBuilder"/></returns>
/// <param name="rawUrl">The raw URL to use for the request builder.</param>
public global::Marechai.ApiClient.Wwpc.Pending.Item.Duplicate.DuplicateRequestBuilder WithUrl(string rawUrl)
{
return new global::Marechai.ApiClient.Wwpc.Pending.Item.Duplicate.DuplicateRequestBuilder(rawUrl, RequestAdapter);
}
/// <summary>
/// Configuration for the request such as headers, query parameters, and middleware options.
/// </summary>
[Obsolete("This class is deprecated. Please use the generic RequestConfiguration class generated by the generator.")]
[global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
public partial class DuplicateRequestBuilderPostRequestConfiguration : RequestConfiguration<DefaultQueryParameters>
{
}
}
}
#pragma warning restore CS0618

View File

@@ -3,6 +3,7 @@
using Marechai.ApiClient.Models;
using Marechai.ApiClient.Wwpc.Pending.Item.Accept;
using Marechai.ApiClient.Wwpc.Pending.Item.Discard;
using Marechai.ApiClient.Wwpc.Pending.Item.Duplicate;
using Marechai.ApiClient.Wwpc.Pending.Item.NameMatches;
using Marechai.ApiClient.Wwpc.Pending.Item.Skip;
using Marechai.ApiClient.Wwpc.Pending.Item.VendorMatches;
@@ -32,6 +33,11 @@ namespace Marechai.ApiClient.Wwpc.Pending.Item
{
get => new global::Marechai.ApiClient.Wwpc.Pending.Item.Discard.DiscardRequestBuilder(PathParameters, RequestAdapter);
}
/// <summary>The duplicate property</summary>
public global::Marechai.ApiClient.Wwpc.Pending.Item.Duplicate.DuplicateRequestBuilder Duplicate
{
get => new global::Marechai.ApiClient.Wwpc.Pending.Item.Duplicate.DuplicateRequestBuilder(PathParameters, RequestAdapter);
}
/// <summary>The nameMatches property</summary>
public global::Marechai.ApiClient.Wwpc.Pending.Item.NameMatches.NameMatchesRequestBuilder NameMatches
{

View File

@@ -1,5 +1,5 @@
{
"descriptionHash": "E2CB5CED26A518E9B9E8E510F1AB55A78E596BA526A02678C35E6F7A0574D857BA2E012456CEB440F167055B97A10AC7616BDDE7321B4717618662F25848B3DD",
"descriptionHash": "B6F0BB0EB38886F67B647D9CC0ACC2E32AE03D820AAA285630B57CD527C3E8D3674A7DCC35FE4F3DF1DC034D25F5ADCAF630DEBD031EA2E7715C32006E3A069E",
"descriptionLocation": "../../../../../tmp/openapi.json",
"lockFileVersion": "1.0.0",
"kiotaVersion": "1.31.1",

View File

@@ -152,3 +152,10 @@ public class AcceptWwpcImportResultDto
public int InsertedDescriptionCount { get; set; }
public int InsertedGenreCount { get; set; }
}
public class DuplicateWwpcImportDto
{
[Required]
[StringLength(512, MinimumLength = 1)]
public string NewName { get; set; }
}

View File

@@ -219,6 +219,20 @@ public class WwpcImportsController(MarechaiContext context, WwpcPromotionService
return ok ? NoContent() : NotFound();
}
[HttpPost("pending/{id:long}/duplicate")]
[ProducesResponseType(typeof(long), StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)]
[ProducesResponseType(StatusCodes.Status404NotFound)]
public async Task<ActionResult<long>> DuplicateAsync(long id, [FromBody] DuplicateWwpcImportDto dto)
{
if(!ModelState.IsValid)
return Problem(detail: "A name is required.", statusCode: StatusCodes.Status400BadRequest);
long? newId = await promotion.DuplicateAsync(id, dto.NewName);
if(newId == null) return NotFound();
return Ok(newId.Value);
}
static WwpcPendingDetailDto Map(WwpcSoftware s) => new()
{
Id = s.Id,

View File

@@ -479,6 +479,85 @@ public sealed class WwpcPromotionService
return true;
}
/// <summary>
/// Duplicates a <see cref="WwpcSoftware" /> staging entry (including its child versions and
/// screenshots) so that an admin can split one WinWorldPC product page into multiple Marechai
/// software entities. The clone gets the supplied <paramref name="newName" />, status
/// <see cref="WwpcSoftwareStatus.ReadyForReview" />, and all review/promotion fields cleared.
/// <c>SourceUrl</c> gets a <c>#dup-{timestamp}</c> fragment appended to satisfy the unique
/// index. Screenshot <c>SourceUrl</c>s likewise get a unique suffix.
/// </summary>
public async Task<long?> DuplicateAsync(long id, string newName)
{
WwpcSoftware source = await _db.WwpcSoftwares
.Include(s => s.Versions)
.Include(s => s.Screenshots)
.FirstOrDefaultAsync(s => s.Id == id);
if(source == null) return null;
string suffix = $"#dup-{DateTime.UtcNow.Ticks}";
var clone = new WwpcSoftware
{
SourceUrl = source.SourceUrl + suffix,
Slug = source.Slug,
Status = WwpcSoftwareStatus.ReadyForReview,
ProductType = source.ProductType,
Name = newName,
VendorName = source.VendorName,
VendorUrl = source.VendorUrl,
RawCategoriesCsv = source.RawCategoriesCsv,
PlatformsCsv = source.PlatformsCsv,
ReleaseDateText = source.ReleaseDateText,
UserInterface = source.UserInterface,
RawDescription = source.RawDescription,
EnglishDescriptionMuseum = source.EnglishDescriptionMuseum,
MuseumDescriptionPromptVersion = source.MuseumDescriptionPromptVersion,
SuggestedGenreIdsJson = source.SuggestedGenreIdsJson,
SuggestedVendorCompanyId = source.SuggestedVendorCompanyId,
WwpcCategoryId = source.WwpcCategoryId,
CrawledOn = source.CrawledOn
};
_db.WwpcSoftwares.Add(clone);
await _db.SaveChangesAsync();
foreach(WwpcVersion v in source.Versions)
{
_db.WwpcVersions.Add(new WwpcVersion
{
WwpcSoftwareId = clone.Id,
MajorRelease = v.MajorRelease,
MajorReleaseUrl = v.MajorReleaseUrl,
VersionString = v.VersionString,
Language = v.Language,
Architecture = v.Architecture,
MediaKind = v.MediaKind,
SizeText = v.SizeText,
DownloadUrl = v.DownloadUrl,
IsEnabledByDefault = true
});
}
foreach(WwpcScreenshot s in source.Screenshots)
{
_db.WwpcScreenshots.Add(new WwpcScreenshot
{
WwpcSoftwareId = clone.Id,
MajorRelease = s.MajorRelease,
SourceUrl = s.SourceUrl + suffix,
ImageUrl = s.ImageUrl,
Caption = s.Caption,
SuggestedSoftwarePlatformId = s.SuggestedSoftwarePlatformId,
IsEnabledByDefault = true,
CrawledOn = s.CrawledOn
});
}
await _db.SaveChangesAsync();
return clone.Id;
}
/// <summary>
/// Render the museum-grade markdown to HTML via Markdig with the same advanced-extensions
/// pipeline used by <see cref="SoundSynthDescriptionSuggestionApplier" /> and friends.

View File

@@ -0,0 +1,36 @@
@using MudBlazor
@using Marechai.Services
@inject IStringLocalizer<WwpcImportsQueue> L
<MudDialog>
<DialogContent>
<MudText Typo="Typo.body1" Class="mb-4">@ContentText</MudText>
<MudTextField @bind-Value="_name" Label="@L["Name for the duplicate"]"
Variant="Variant.Outlined" Immediate="true" AutoFocus="true"
Required="true" RequiredError="@L["A name is required."]"/>
</DialogContent>
<DialogActions>
<MudButton OnClick="Cancel">@L["Cancel"]</MudButton>
<MudButton Color="Color.Primary" Variant="Variant.Filled" OnClick="Confirm"
Disabled="@string.IsNullOrWhiteSpace(_name)">@L["Duplicate"]</MudButton>
</DialogActions>
</MudDialog>
@code {
[CascadingParameter]
IMudDialogInstance MudDialog { get; set; } = null!;
[Parameter]
public string ContentText { get; set; } = string.Empty;
[Parameter]
public string DefaultName { get; set; } = string.Empty;
string _name = string.Empty;
protected override void OnParametersSet() => _name = DefaultName;
void Cancel() => MudDialog.Cancel();
void Confirm() => MudDialog.Close(DialogResult.Ok(_name));
}

View File

@@ -128,6 +128,15 @@
<MudLink Href="@AbsoluteWwpcUrl(context.Item.SourceUrl)" Target="_blank" Color="Color.Default">@L["Open on winworldpc.com"]</MudLink>
}
@if(StatusOf(context.Item) is WwpcSoftwareStatus.ReadyForReview or WwpcSoftwareStatus.Skipped)
{
<MudTooltip Text="@L["Duplicate this entry for splitting into multiple software"]">
<MudIconButton Icon="@Icons.Material.Filled.ContentCopy" Color="Color.Default" Size="Size.Small"
OnClick="@(() => DuplicateAsync(context.Item))"
aria-label="@L["Duplicate"]"/>
</MudTooltip>
}
@if(StatusOf(context.Item) is not WwpcSoftwareStatus.Discarded and not WwpcSoftwareStatus.Accepted)
{
<MudTooltip Text="@L["Reject this entry"]">
@@ -243,6 +252,42 @@
}
}
async Task DuplicateAsync(WwpcPendingListItemDto item)
{
string defaultName = $"{item.Name} (Dup)";
var parameters = new DialogParameters
{
["ContentText"] = string.Format(
L["Create a copy of '{0}' with a new name. You can then review each copy separately and pick which versions belong to each."].Value,
item.Name),
["DefaultName"] = defaultName
};
IDialogReference dialog =
await DialogService.ShowAsync<WwpcDuplicateDialog>(L["Duplicate WinWorldPC import"], parameters,
new DialogOptions
{
MaxWidth = MaxWidth.Small,
FullWidth = true
});
DialogResult result = await dialog.Result;
if(result is null or { Canceled: true }) return;
string newName = result.Data as string;
if(string.IsNullOrWhiteSpace(newName)) return;
(long? newId, string error) = await Service.DuplicateAsync(item.Id ?? 0, newName);
if(newId.HasValue)
{
Snackbar.Add(string.Format(L["Duplicated as '{0}' (id {1})."].Value, newName, newId.Value), Severity.Success);
await ReloadAsync();
}
else
{
Snackbar.Add(string.Format(L["Failed to duplicate: {0}"].Value, error ?? "unknown"), Severity.Error);
}
}
static WwpcSoftwareStatus StatusOf(WwpcPendingListItemDto i) =>
i.Status.HasValue ? (WwpcSoftwareStatus)i.Status.Value : WwpcSoftwareStatus.Crawled;

View File

@@ -196,4 +196,24 @@ public sealed class WwpcImportsService(Client client, ILogger<WwpcImportsService
return false;
}
}
public async Task<(long? newId, string error)> DuplicateAsync(long id, string newName)
{
try
{
long? newId = await client.Wwpc.Pending[(int)id].Duplicate.PostAsync(
new DuplicateWwpcImportDto { NewName = newName });
return (newId, null);
}
catch(ApiException ex)
{
logger.LogWarning(ex, "Server rejected duplicate for wwpc #{Id}", id);
return (null, ExtractDetail(ex));
}
catch(System.Exception ex)
{
logger.LogError(ex, "Error duplicating wwpc #{Id}", id);
return (null, ex.Message);
}
}
}