WIP - new IEntityXmlSerializer, IPackageCreation, PackageActionRunner, large refactor of entity serialization, no more IPackagingService.Export methods, ports legacy package creation code to new IPackageCreation, more more ExportEventArgs (makes no sense)

This commit is contained in:
Shannon
2019-01-10 12:44:57 +11:00
parent e27b873a5a
commit 5f972384b1
64 changed files with 1543 additions and 1435 deletions

View File

@@ -0,0 +1,9 @@
namespace Umbraco.Core.Models.Packaging
{
public enum ActionRunAt
{
Undefined = 0,
Install,
Uninstall
}
}

View File

@@ -21,23 +21,4 @@ namespace Umbraco.Core.Models.Packaging
public IEnumerable<PackageAction> Actions { get; set; }
public bool PackageInstalled { get; set; }
}
internal static class InstallationSummaryExtentions
{
public static InstallationSummary InitEmpty(this InstallationSummary summary)
{
summary.Actions = new List<PackageAction>();
summary.ContentInstalled = new List<IContent>();
summary.ContentTypesInstalled = new List<IContentType>();
summary.DataTypesInstalled = new List<IDataType>();
summary.DictionaryItemsInstalled = new List<IDictionaryItem>();
summary.FilesInstalled = new List<string>();
summary.LanguagesInstalled = new List<ILanguage>();
summary.MacrosInstalled = new List<IMacro>();
summary.MetaData = new MetaData();
summary.TemplatesInstalled = new List<ITemplate>();
summary.PackageInstalled = false;
return summary;
}
}
}

View File

@@ -0,0 +1,23 @@
using System.Collections.Generic;
namespace Umbraco.Core.Models.Packaging
{
internal static class InstallationSummaryExtentions
{
public static InstallationSummary InitEmpty(this InstallationSummary summary)
{
summary.Actions = new List<PackageAction>();
summary.ContentInstalled = new List<IContent>();
summary.ContentTypesInstalled = new List<IContentType>();
summary.DataTypesInstalled = new List<IDataType>();
summary.DictionaryItemsInstalled = new List<IDictionaryItem>();
summary.FilesInstalled = new List<string>();
summary.LanguagesInstalled = new List<ILanguage>();
summary.MacrosInstalled = new List<IMacro>();
summary.MetaData = new MetaData();
summary.TemplatesInstalled = new List<ITemplate>();
summary.PackageInstalled = false;
return summary;
}
}
}

View File

@@ -4,13 +4,9 @@ using System.Xml.Linq;
namespace Umbraco.Core.Models.Packaging
{
public enum ActionRunAt
{
Undefined = 0,
Install,
Uninstall
}
/// <summary>
/// Defines a package action declared within a package manifest
/// </summary>
[Serializable]
[DataContract(IsReference = true)]
public class PackageAction

View File

@@ -0,0 +1,108 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Runtime.Serialization;
namespace Umbraco.Core.Models.Packaging
{
[DataContract(Name = "packageInstance")]
public class PackageDefinition
{
[DataMember(Name = "id")]
public int Id { get; set; }
//TODO: I don't see why this is necessary
[DataMember(Name = "repositoryGuid")]
public string RepositoryGuid { get; set; }
[DataMember(Name = "packageGuid")]
public string PackageGuid { get; set; }
[DataMember(Name = "hasUpdate")]
public bool HasUpdate { get; set; }
[DataMember(Name = "name")]
[Required]
public string Name { get; set; } = string.Empty;
[DataMember(Name = "url")]
[Required]
[Url]
public string Url { get; set; } = string.Empty;
[DataMember(Name = "folder")]
public string Folder { get; set; } = string.Empty;
[DataMember(Name = "packagePath")]
public string PackagePath { get; set; } = string.Empty;
[DataMember(Name = "version")]
[Required]
public string Version { get; set; } = string.Empty;
/// <summary>
/// The minimum umbraco version that this package requires
/// </summary>
[DataMember(Name = "umbracoVersion")]
public Version UmbracoVersion { get; set; }
[DataMember(Name = "author")]
[Required]
public string Author { get; set; } = string.Empty;
[DataMember(Name = "authorUrl")]
[Required]
[Url]
public string AuthorUrl { get; set; } = string.Empty;
[DataMember(Name = "license")]
public string License { get; set; } = "MIT License";
[DataMember(Name = "licenseUrl")]
public string LicenseUrl { get; set; } = "http://opensource.org/licenses/MIT";
[DataMember(Name = "readme")]
public string Readme { get; set; } = string.Empty;
[DataMember(Name = "contentLoadChildNodes")]
public bool ContentLoadChildNodes { get; set; } = false;
[DataMember(Name = "contentNodeId")]
public string ContentNodeId { get; set; } = string.Empty;
[DataMember(Name = "macros")]
public List<string> Macros { get; set; } = new List<string>();
[DataMember(Name = "languages")]
public List<string> Languages { get; set; } = new List<string>();
[DataMember(Name = "dictionaryItems")]
public List<string> DictionaryItems { get; set; } = new List<string>();
[DataMember(Name = "templates")]
public List<string> Templates { get; set; } = new List<string>();
[DataMember(Name = "documentTypes")]
public List<string> DocumentTypes { get; set; } = new List<string>();
[DataMember(Name = "stylesheets")]
public List<string> Stylesheets { get; set; } = new List<string>();
[DataMember(Name = "files")]
public List<string> Files { get; set; } = new List<string>();
//TODO: Change this to angular view
[DataMember(Name = "loadControl")]
public string LoadControl { get; set; } = string.Empty;
[DataMember(Name = "actions")]
public string Actions { get; set; }
[DataMember(Name = "dataTypes")]
public List<string> DataTypes { get; set; } = new List<string>();
[DataMember(Name = "iconUrl")]
public string IconUrl { get; set; } = string.Empty;
}
}

View File

@@ -0,0 +1,23 @@
using System;
using System.Collections.Generic;
using System.Runtime.Serialization;
namespace Umbraco.Core.Models.Packaging
{
[Serializable]
[DataContract(IsReference = true)]
public class UninstallationSummary
{
public MetaData MetaData { get; set; }
public IEnumerable<IDataType> DataTypesUninstalled { get; set; }
public IEnumerable<ILanguage> LanguagesUninstalled { get; set; }
public IEnumerable<IDictionaryItem> DictionaryItemsUninstalled { get; set; }
public IEnumerable<IMacro> MacrosUninstalled { get; set; }
public IEnumerable<string> FilesUninstalled { get; set; }
public IEnumerable<ITemplate> TemplatesUninstalled { get; set; }
public IEnumerable<IContentType> ContentTypesUninstalled { get; set; }
public IEnumerable<IFile> StylesheetsUninstalled { get; set; }
public IEnumerable<IContent> ContentUninstalled { get; set; }
public bool PackageUninstalled { get; set; }
}
}

View File

@@ -0,0 +1,22 @@
using System.Collections.Generic;
namespace Umbraco.Core.Models.Packaging
{
internal static class UninstallationSummaryExtentions
{
public static UninstallationSummary InitEmpty(this UninstallationSummary summary)
{
summary.ContentUninstalled = new List<IContent>();
summary.ContentTypesUninstalled = new List<IContentType>();
summary.DataTypesUninstalled = new List<IDataType>();
summary.DictionaryItemsUninstalled = new List<IDictionaryItem>();
summary.FilesUninstalled = new List<string>();
summary.LanguagesUninstalled = new List<ILanguage>();
summary.MacrosUninstalled = new List<IMacro>();
summary.MetaData = new MetaData();
summary.TemplatesUninstalled = new List<ITemplate>();
summary.PackageUninstalled = false;
return summary;
}
}
}