changeset 130:e147a1e9399b

Re #68: Add "export army list" function * Add initial interface for exporting * Add stub implementation for exporting HTML (does nothing so far)
author IBBoard <dev@ibboard.co.uk>
date Fri, 28 Aug 2009 19:57:10 +0000
parents 52cacdbcb001
children 5145b7c61ae0
files IBBoard.WarFoundry.API.csproj api/Exporters/IWarFoundryExporter.cs api/Exporters/WarFoundryHtmlExporter.cs
diffstat 3 files changed, 67 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/IBBoard.WarFoundry.API.csproj	Wed Aug 26 19:00:50 2009 +0000
+++ b/IBBoard.WarFoundry.API.csproj	Fri Aug 28 19:57:10 2009 +0000
@@ -135,6 +135,8 @@
     <Compile Include="api\Factories\Xml\Zip\StringZipEntrySource.cs" />
     <Compile Include="api\Factories\RequiredDataMissingException.cs" />
     <Compile Include="api\Factories\Xml\WarFoundryXmlArmyParser.cs" />
+    <Compile Include="api\Exporters\IWarFoundryExporter.cs" />
+    <Compile Include="api\Exporters\WarFoundryHtmlExporter.cs" />
   </ItemGroup>
   <ItemGroup>
     <Content Include="libs\ICSharpCode.SharpZipLib.dll" />
@@ -154,4 +156,7 @@
       <HintPath>libs\ICSharpCode.SharpZipLib.dll</HintPath>
     </Reference>
   </ItemGroup>
+  <ItemGroup>
+    <Folder Include="api\Exporters\" />
+  </ItemGroup>
 </Project>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/api/Exporters/IWarFoundryExporter.cs	Fri Aug 28 19:57:10 2009 +0000
@@ -0,0 +1,26 @@
+// This file (IWarFoundryExporter.cs) is a part of the IBBoard.WarFoundry.API project and is copyright 2009 IBBoard
+// 
+// The file and the library/program it is in are licensed and distributed, without warranty, under the GNU Affero GPL license, either version 3 of the License or (at your option) any later version. Please see COPYING for more information and the full license.
+
+using System;
+using IBBoard.WarFoundry.API.Objects;
+
+namespace IBBoard.WarFoundry.API.Exporters
+{
+	/// <summary>
+	/// An interface to be implemented by classes that export WarFoundry armies to other formats than "saved armies" (e.g. HTML)
+	/// </summary>
+	public interface IWarFoundryExporter
+	{
+		/// <summary>
+		/// Exports the army to the specified path
+		/// </summary>
+		/// <param name="army">
+		/// The <see cref="Army"/> to export
+		/// </param>
+		/// <param name="path">
+		/// The file path to export to
+		/// </param>
+		void ExportArmy(Army army, string path);
+	}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/api/Exporters/WarFoundryHtmlExporter.cs	Fri Aug 28 19:57:10 2009 +0000
@@ -0,0 +1,36 @@
+// This file (WarFoundryHtmlExporter.cs) is a part of the IBBoard.WarFoundry.API project and is copyright 2009 IBBoard
+// 
+// The file and the library/program it is in are licensed and distributed, without warranty, under the GNU Affero GPL license, either version 3 of the License or (at your option) any later version. Please see COPYING for more information and the full license.
+
+using System;
+using IBBoard.WarFoundry.API.Objects;
+
+namespace IBBoard.WarFoundry.API.Exporters
+{
+	/// <summary>
+	/// Custom exporter that exports an army as a basic HTML file
+	/// </summary>
+	public class WarFoundryHtmlExporter : IWarFoundryExporter
+	{
+		private static WarFoundryHtmlExporter exporter;
+		
+		public static WarFoundryHtmlExporter GetDefault()
+		{
+			if (exporter == null)
+			{
+				exporter = new WarFoundryHtmlExporter();
+			}
+			
+			return exporter;
+		}
+		
+		private WarFoundryHtmlExporter()
+		{
+			//Hide constructor
+		}
+		
+		public void ExportArmy(Army army, string path)
+		{
+		}
+	}
+}