using System.Collections.Generic;
using System.ComponentModel;
public string EventDescription;
public Parameter(string Name, string Description)
EventDescription = Description;
public abstract string valueAsString();
public string PrintMe() {
return $"{EventName} - {EventDescription} : {valueAsString()} | ";
class BoolParameter : Parameter
public BoolParameter(string Name, string Description, bool valueIn) : base(Name, Description)
public override string valueAsString()
return booleanValue == true ? "Yes": "No";
class StringParameter : Parameter
public StringParameter(string Name, string Description, string valueIn) : base(Name, Description)
public override string valueAsString()
public string Name { get; set; }
public DateTime CreatedAt { get; set; }
public List<Parameter> Parameters { get; set; }
return $"{Name} ({CreatedAt}): {Environment.NewLine} {AllParameters()}";
public string AllParameters()
foreach (var param in Parameters)
public static void Main(string[] args)
List<FormObject> formObjects = new List<FormObject>();
List<Parameter> parameters = new List<Parameter>
new BoolParameter("Has breakfast been taken", "Please answer if the resident has had their food", true),
new StringParameter("What did they have", "Please let us know how much the person eat", "Lots of toast")
FormObject formObject = new FormObject()
CreatedAt = DateTime.Now,
formObjects.Add(formObject);
parameters = new List<Parameter>
new BoolParameter("Has breakfast been taken", "Please answer if the resident has had their food", false),
new StringParameter("What did they have", "Please let us know how much the person eat", "Frank was asleep and missed breakfast")
formObject = new FormObject()
CreatedAt = DateTime.Now,
formObjects.Add(formObject);
parameters = new List<Parameter>
new BoolParameter("Did the person enjoy the trip?", "Please give your opinion on if you believe the person enjoyed the trip", true),
new BoolParameter("Did you take any pictures", "", true),
new BoolParameter("Was a risk assessment carried out?", "Please confirm a risk assessment was carried out", false),
new StringParameter("Where was the trip", "", "Marwell Zoo")
formObject = new FormObject()
CreatedAt = DateTime.Now,
formObjects.Add(formObject);
foreach (var obj in formObjects)
Console.WriteLine(obj.PrintMe());