| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 | 
							- using InABox.Core;
 
- using Inflector;
 
- using System;
 
- using System.Collections.Generic;
 
- using System.Linq;
 
- using System.Text;
 
- using System.Threading.Tasks;
 
- namespace InABox.Poster.CSV
 
- {
 
-     public class CSVPosterSettings : PosterSettings
 
-     {
 
-         [FileNameEditor("CSV Files (*.csv)|*.csv", RequireExisting = false)]
 
-         public string DefaultOutputFile { get; set; }
 
-         public override string DefaultScript(Type TPostable)
 
-         {
 
-             var tName = TPostable.Name;
 
-             var decapital = tName[0..1].ToLower() + tName[1..];
 
-             var ns = TPostable.Namespace;
 
-             return @"
 
- using " + ns + @";
 
- using InABox.Poster.CSV;
 
- using InABox.Core;
 
- using System.Collections.Generic;
 
- public class Module
 
- {
 
-     // Output Results for CSV
 
-     public ICSVExport<" + tName + @"> Results { get; set; }
 
-     // Customise 'model' before loading data. Return false if the post needs to be cancelled.
 
-     public bool BeforePost(IDataModel<" + tName + @"> model)
 
-     {
 
-         return true;
 
-     }
 
-     public bool Process(IDataModel<" + tName + @"> model)
 
-     {
 
-         // Create new export object. You can use any object as your map,
 
-         // but for simple cases just use " + tName + @".
 
-         var export = new CSVExport<" + $"{tName}, {tName}" + @">();
 
-         // Define the mapping from the fields of " + tName + @" to columns in the CSV file.
 
-         export.DefineMapping(new()
 
-         {
 
-             new(""ID"", " + decapital + @" => " + decapital + @".ID),
 
-             new(""Column1"", " + decapital + @" => " + decapital +  @".Column1),
 
-             new(""Column2"", " + decapital + @" => " + decapital +  @".Column2),
 
-             new(""Column3"", " + decapital + @" => " + decapital + @".Column3),
 
-             // etc.
 
-         });
 
-         foreach(var " + decapital + @" in model.GetTable<" + tName + @">().ToObjects<" + tName + @">())
 
-         {
 
-             // Do processing
 
-             
 
-             // Add item to export
 
-             export.Add(" + $"{decapital}, {decapital}" + @");
 
-         }
 
-         Results = export; // Set result
 
-         return true; // return true for success.
 
-     }
 
-     // Perform any post-processing. All the items of type '" + tName + @" will be saved after this function is called.
 
-     public void AfterPost(IDataModel<" + tName + @"> model)
 
-     {
 
-     }
 
- }";
 
-         }
 
-     }
 
- }
 
 
  |