diff --git a/powershell/llcsharp/schema/schema-resolver.ts b/powershell/llcsharp/schema/schema-resolver.ts index 04fb661e33..3a667eb239 100644 --- a/powershell/llcsharp/schema/schema-resolver.ts +++ b/powershell/llcsharp/schema/schema-resolver.ts @@ -183,7 +183,7 @@ export class NewSchemaDefinitionResolver { } return this.add(schema, new NewObjectImplementation(schema)); } - case SchemaType.Choice: + case SchemaType.Time: case SchemaType.String: { return new NewString(schema, required); @@ -193,8 +193,12 @@ export class NewSchemaDefinitionResolver { case SchemaType.Uuid: return new NewUuid(schema, required); case SchemaType.DateTime: + if ((schema).format === StringFormat.DateTimeRfc1123) { + return new NewDateTime1123(schema, required); + } return new NewDateTime(schema, required); - + case SchemaType.ByteArray: + return new NewByteArray(schema, required); case SchemaType.Boolean: return new NewBoolean(schema, required); @@ -227,10 +231,22 @@ export class NewSchemaDefinitionResolver { switch ((schema).valueType.type) { case SchemaType.String: return new NewEnumImplementation(schema, required); + case SchemaType.DateTime: + if ((schema).valueType.format === StringFormat.DateTimeRfc1123) { + return new NewDateTime1123(schema, required); + } + return new NewDateTime(schema, required); default: state.error(`Unsupported constant type. Schema '${schema.language.csharp?.name}' is declared with invalid type '${schema.type}'`, message.UnknownJsonType); throw new Error('Unknown Model. Fatal.'); } + case SchemaType.Choice: { + const choiceSchema = schema as ChoiceSchema; + if ((choiceSchema.choiceType).type === SchemaType.DateTime && (choiceSchema.choiceType).format === StringFormat.DateTimeRfc1123) { + return new NewDateTime1123(schema as DateTimeSchema, required); + } + return new NewString(schema, required); + } case SchemaType.SealedChoice: return new NewEnumImplementation(schema, required); case undefined: