Пример #1
0
    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;
        }
      }
    }