diff --git a/source/.idea/.idea.Octopus.Server.Core.Versioning/.idea/workspace.xml b/source/.idea/.idea.Octopus.Server.Core.Versioning/.idea/workspace.xml
index a499bfd..0f1d791 100644
--- a/source/.idea/.idea.Octopus.Server.Core.Versioning/.idea/workspace.xml
+++ b/source/.idea/.idea.Octopus.Server.Core.Versioning/.idea/workspace.xml
@@ -2,8 +2,8 @@
+
-
@@ -158,34 +158,35 @@
-
+
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
@@ -588,8 +589,8 @@
-
+
@@ -750,7 +751,7 @@
-
+ 1510532881615
@@ -763,7 +764,7 @@
-
+
@@ -1602,31 +1603,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -1722,5 +1698,31 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/source/Octopus.Server.Core.Versioning/Octopus/Core/Resources/Metadata/IMetadataFactory.cs b/source/Octopus.Server.Core.Versioning/Octopus/Core/Resources/Metadata/IMetadataFactory.cs
index 22f091e..e1448fb 100644
--- a/source/Octopus.Server.Core.Versioning/Octopus/Core/Resources/Metadata/IMetadataFactory.cs
+++ b/source/Octopus.Server.Core.Versioning/Octopus/Core/Resources/Metadata/IMetadataFactory.cs
@@ -2,12 +2,19 @@
namespace Octopus.Core.Resources.Metadata
{
+ ///
+ /// Defines a factory that can be used to extract the metadata of a package from a variety of
+ /// imports. The methods extended from IPackageIDParser will inspect the supplied paramaters
+ /// to work out which feed type the package id represents. The methods from this interface
+ /// add a field called feedType that allows the feed type to be explictly defined.
+ ///
public interface IMetadataFactory : IPackageIDParser
{
///
/// Extracts metadata from a package ID (i.e. no version information)
///
/// The package id
+ /// The type of feed that supplied the package
/// The metadata assocaited with the package id
BasePackageMetadata GetMetadataFromPackageID(string packageID, FeedType feedType);
///
@@ -16,6 +23,7 @@ public interface IMetadataFactory : IPackageIDParser
///
/// The package id
/// The parsed metadata if we returned true
+ /// The type of feed that supplied the package
/// True if this package id could be parsed
bool CanGetMetadataFromPackageID(string packageID, out BasePackageMetadata metadata, FeedType feedType);
///
@@ -24,6 +32,7 @@ public interface IMetadataFactory : IPackageIDParser
/// The package id
/// The package version
/// The package extension
+ /// The type of feed that supplied the package
/// The metadata assocaited with the package id
PackageMetadata GetMetadataFromPackageID(string packageID, string version, string extension, FeedType feedType);
///
@@ -34,6 +43,7 @@ public interface IMetadataFactory : IPackageIDParser
/// The package extension
/// The file size
/// The file hash
+ /// The type of feed that supplied the package
/// The metadata assocaited with the package id
PhysicalPackageMetadata GetMetadataFromPackageID(string packageID, string version, string extension, long size, string hash, FeedType feedType);
///
@@ -45,6 +55,7 @@ public interface IMetadataFactory : IPackageIDParser
///
/// The package file name
/// The extensions that this parser should know about
+ /// The type of feed that supplied the package
/// The metadata assocaited with the package file
PackageMetadata GetMetadataFromPackageName(string packageFile, string[] extensions, FeedType feedType);
///
@@ -57,6 +68,7 @@ public interface IMetadataFactory : IPackageIDParser
/// The package file name
/// The extensions that this parser should know about
/// The package metadata if the parsing was successful
+ /// The type of feed that supplied the package
/// True if the file could be parsed, and false otherwise
bool CanGetMetadataFromPackageName(string packageFile, string[] extensions, out PackageMetadata packageMetadata, FeedType feedType);
///
@@ -68,6 +80,7 @@ public interface IMetadataFactory : IPackageIDParser
///
/// The package file name
/// The extensions that this parser should know about
+ /// The type of feed that supplied the package
/// A tuple with a boolean indicating the success of the parsing, and the metadata if parsing was successful
Maybe CanGetMetadataFromPackageName(string packageFile, string[] extensions, FeedType feedType);
///
@@ -78,6 +91,7 @@ public interface IMetadataFactory : IPackageIDParser
/// This method will break down these filenames.
///
/// The package file name
+ /// The type of feed that supplied the package
/// A tuple with a boolean indicating the success of the parsing, and the metadata if parsing was successful
Maybe CanGetMetadataFromPackageName(string packageFile, FeedType feedType);
///
@@ -88,6 +102,7 @@ public interface IMetadataFactory : IPackageIDParser
///
/// The package file name
/// The extensions that this parser should know about
+ /// The type of feed that supplied the package
/// The metadata assocaited with the package file
PackageMetadata GetMetadataFromServerPackageName(string packageFile, string[] extensions, FeedType feedType);
///
@@ -97,6 +112,7 @@ public interface IMetadataFactory : IPackageIDParser
/// This method will break down this filename.
///
/// The package file name
+ /// The type of feed that supplied the package
/// The metadata assocaited with the package file
PackageMetadata GetMetadataFromServerPackageName(string packageFile, FeedType feedType);
///
@@ -108,6 +124,7 @@ public interface IMetadataFactory : IPackageIDParser
/// The package file name
/// The extensions that this parser should know about
/// The package metadata if the parsing was successful
+ /// The type of feed that supplied the package
/// True if the file could be parsed, and false otherwise
bool CanGetMetadataFromServerPackageName(string packageFile, string[] extensions, out PackageMetadata packageMetadata, FeedType feedType);
///
@@ -117,6 +134,7 @@ public interface IMetadataFactory : IPackageIDParser
/// This method will break down this filename.
///
/// The package file name
+ /// The type of feed that supplied the package
/// A tuple with a boolean indicating the success of the parsing, and the metadata if parsing was successful
Maybe CanGetMetadataFromServerPackageName(string packageFile, string[] extensions, FeedType feedType);
///
@@ -126,6 +144,7 @@ public interface IMetadataFactory : IPackageIDParser
/// This method will break down this filename.
///
/// The package file name
+ /// The type of feed that supplied the package
/// A tuple with a boolean indicating the success of the parsing, and the metadata if parsing was successful
Maybe CanGetMetadataFromServerPackageName(string packageFile, FeedType feedType);
///
@@ -138,6 +157,7 @@ public interface IMetadataFactory : IPackageIDParser
/// The extensions that this parser should know about
/// The file size
/// The file hash
+ /// The type of feed that supplied the package
/// The metadata assocaited with the package file
PhysicalPackageMetadata GetMetadataFromServerPackageName(
string packageFile,