protected override string Serialize(ISchoolComponent component) { var builder = new StringBuilder(); if (component is SchoolComposite) { var schoolComposite = (SchoolComposite)component; builder.Append($"\"{component.Name}\":"); builder.AppendLine(); builder.AppendLine("{"); for (int i = 0; i < schoolComposite.CountChild(); ++i) { builder.Append(Serialize(schoolComposite.GetChild(i))); } builder.AppendLine("},"); } else { var schoolLeaf = (SchoolLeaf)component; builder.Append($"\"{schoolLeaf.Title}\":\"{schoolLeaf.Name}\""); builder.AppendLine(); } return(builder.ToString()); }
public void SerializeObject(ISchoolComponent component, string outFileName) { string serializationString = Serialize(component); string extension = GetExtension(); SaveToFile(outFileName, extension, serializationString); }
public bool RemoveChild(ISchoolComponent schoolComponent) { return(_schoolComponents.Remove(schoolComponent)); }
public void AddChild(ISchoolComponent schoolComponent) { _schoolComponents.Add(schoolComponent); }
protected abstract string Serialize(ISchoolComponent component);