Skip to content

Commit 13e633c

Browse files
Fixing Serialization on DevOps
1 parent 8c1c667 commit 13e633c

File tree

5 files changed

+50
-1
lines changed

5 files changed

+50
-1
lines changed
Binary file not shown.
Binary file not shown.

PSModuleDevelopment/bin/PSModuleDevelopment.xml

Lines changed: 12 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

library/PSModuleDevelopment/PSModuleDevelopment/Template/TemplateHost.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,11 @@ internal static TemplateItemBase GetTemplateItem(object Item)
1919
if (Item.GetType() == typeof(TemplateItemFile))
2020
return (TemplateItemFile)Item;
2121

22-
TemplateItemFolder result = new TemplateItemFolder(); ;
2322
PSObject PSItem = PSObject.AsPSObject(Item);
23+
if (PSItem.TypeNames.Contains("Deserialized.PSModuleDevelopment.Template.TemplateItemFile"))
24+
return new TemplateItemFile(PSItem);
25+
26+
TemplateItemFolder result = new TemplateItemFolder();
2427

2528
foreach (object child in PSItem.GetValues("Children"))
2629
result.Children.Add(GetTemplateItem(child));

library/PSModuleDevelopment/PSModuleDevelopment/Template/TemplateItemFile.cs

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
using System;
22
using System.Collections.Generic;
33
using System.Linq;
4+
using System.Management.Automation;
45
using System.Text;
56
using System.Threading.Tasks;
7+
using PSModuleDevelopment.Utility;
68

79
namespace PSModuleDevelopment.Template
810
{
@@ -31,5 +33,37 @@ public class TemplateItemFile : TemplateItemBase
3133
/// List of script value insertion parameters for the plaintext file
3234
/// </summary>
3335
public List<string> ContentParameterScript = new List<string>();
36+
37+
/// <summary>
38+
/// Creates an empty TemplateItemFile
39+
/// </summary>
40+
public TemplateItemFile()
41+
{
42+
43+
}
44+
45+
/// <summary>
46+
/// Creates a filled-out TemplateItemFile.
47+
/// Usually called when deserializing a template.
48+
/// </summary>
49+
/// <param name="PSItem">The deserialized instance of this template item file.</param>
50+
public TemplateItemFile(PSObject PSItem)
51+
{
52+
Name = PSItem.GetValue<string>("Name");
53+
RelativePath = PSItem.GetValue<string>("RelativePath");
54+
Identifier = PSItem.GetValue<string>("Identifier");
55+
foreach (string entry in PSItem.GetValues("FileSystemParameterFlat"))
56+
FileSystemParameterFlat.Add(entry);
57+
foreach (string entry in PSItem.GetValues("FileSystemParameterScript"))
58+
FileSystemParameterScript.Add(entry);
59+
60+
foreach (string entry in PSItem.GetValues("ContentParameterFlat"))
61+
ContentParameterFlat.Add(entry);
62+
foreach (string entry in PSItem.GetValues("ContentParameterScript"))
63+
ContentParameterScript.Add(entry);
64+
65+
Value = PSItem.GetValue<string>("Value");
66+
PlainText = PSItem.GetValue<bool>("PlainText");
67+
}
3468
}
3569
}

0 commit comments

Comments
 (0)