public void AddComponent (TActionComponent component) { if (component.NotNull ()) { switch (component.Category) { case TCategory.Test: { ControlModel.AddContent (component.Models.GadgetTestModel); var contents = new Collection<GadgetTest> (); ControlModel.RequestContent (contents); ComponentControlModels.Clear (); foreach (var gadgetTest in contents) { var componentControlModel = TComponentControlModel.CreateDefault; componentControlModel.ControlModel.CopyFrom (gadgetTest); if (componentControlModel.ControlModel.HasContentTest) { var internalContents = new Collection<GadgetTest> (); componentControlModel.ControlModel.RequestContent (internalContents); foreach (var gadgetTestInternal in internalContents) { var internalComponentControlModel = TComponentControlModel.CreateDefault; internalComponentControlModel.ControlModel.CopyFrom (gadgetTestInternal); internalComponentControlModel.SelectImage (component.Models.GadgetMaterialModel.GetImage ()); componentControlModel.ComponentControlModels.Add (internalComponentControlModel); } } if (componentControlModel.ControlModel.HasContentTarget) { componentControlModel.SelectImage (component.Models.GadgetMaterialModel.GetImage ()); } ComponentControlModels.Add (componentControlModel); } } break; case TCategory.Target: { ControlModel.AddContent (component.Models.GadgetTargetModel); SelectImage (component.Models.GadgetMaterialModel.GetImage ()); } break; } } }