From 8a9b9f605c7542be623697e354fcce2bc4dde49a Mon Sep 17 00:00:00 2001 From: Vincent Biret Date: Wed, 9 Feb 2022 15:44:13 -0500 Subject: [PATCH] - moves discriminator prop name to code method Signed-off-by: Vincent Biret --- src/Kiota.Builder/CodeDOM/CodeClass.cs | 7 +------ src/Kiota.Builder/CodeDOM/CodeMethod.cs | 5 +++++ src/Kiota.Builder/KiotaBuilder.cs | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/Kiota.Builder/CodeDOM/CodeClass.cs b/src/Kiota.Builder/CodeDOM/CodeClass.cs index 0124b9b71f..5ebd338c08 100644 --- a/src/Kiota.Builder/CodeDOM/CodeClass.cs +++ b/src/Kiota.Builder/CodeDOM/CodeClass.cs @@ -30,12 +30,7 @@ public CodeClass():base() public bool IsErrorDefinition { get; set; } - public string Description {get; set;} - - /// - /// Gets/Sets the name of the property to use for discrimination during deserialization. - /// - public string DiscriminatorPropertyName { get; set; } + public string Description {get; set;} /// /// Name of Class /// diff --git a/src/Kiota.Builder/CodeDOM/CodeMethod.cs b/src/Kiota.Builder/CodeDOM/CodeMethod.cs index c746b95f7c..84c34f15a6 100644 --- a/src/Kiota.Builder/CodeDOM/CodeMethod.cs +++ b/src/Kiota.Builder/CodeDOM/CodeMethod.cs @@ -96,6 +96,10 @@ public bool IsSerializationMethod { /// Gets/Sets the discriminator values for the class where the key is the value as represented in the payload. /// public Dictionary DiscriminatorMappings { get; set; } = new(); + /// + /// Gets/Sets the name of the property to use for discrimination during deserialization. + /// + public string DiscriminatorPropertyName { get; set; } public object Clone() { @@ -118,6 +122,7 @@ public object Clone() OriginalIndexer = OriginalIndexer, ErrorMappings = ErrorMappings == null ? null : new (ErrorMappings), DiscriminatorMappings = DiscriminatorMappings == null ? null : new (DiscriminatorMappings), + DiscriminatorPropertyName = DiscriminatorPropertyName?.Clone() as string }; if(Parameters?.Any() ?? false) method.AddParameter(Parameters.Select(x => x.Clone() as CodeParameter).ToArray()); diff --git a/src/Kiota.Builder/KiotaBuilder.cs b/src/Kiota.Builder/KiotaBuilder.cs index bf932c6c99..da25591c5f 100644 --- a/src/Kiota.Builder/KiotaBuilder.cs +++ b/src/Kiota.Builder/KiotaBuilder.cs @@ -836,7 +836,6 @@ private CodeClass AddModelClass(OpenApiUrlTreeNode currentNode, OpenApiSchema sc var declaration = newClass.StartBlock as CodeClass.Declaration; declaration.Inherits = new CodeType { TypeDefinition = inheritsFrom, Name = inheritsFrom.Name }; } - newClass.DiscriminatorPropertyName = schema.Discriminator?.PropertyName; var factoryMethod = newClass.AddMethod(new CodeMethod { Name = "Create", ReturnType = new CodeType { TypeDefinition = newClass, Name = newClass.Name }, @@ -849,6 +848,7 @@ private CodeClass AddModelClass(OpenApiUrlTreeNode currentNode, OpenApiSchema sc Optional = false, Type = new CodeType { Name = ParseNodeInterface, IsExternal = true }, }); + factoryMethod.DiscriminatorPropertyName = schema.Discriminator?.PropertyName; if(schema.Discriminator?.Mapping?.Any() ?? false) factoryMethod.DiscriminatorMappings = schema.Discriminator .Mapping