Esempio n. 1
0
      public bool UpdateFrom (GadgetTest gadgetContent)
      {
        bool res = false;

        if (gadgetContent.NotNull ()) {
          if (gadgetContent.ValidateId) {
            // Test
            if (HasContentTest && gadgetContent.HasContentTest) {
              if (Contains (gadgetContent.Id)) {
                if (RequestTest (gadgetContent.Id) is GadgetTest gadgetItem) {
                  gadgetItem.ChangeFrom (gadgetContent);

                  // Target
                  if (gadgetItem.HasContentTarget) {
                    var list = new Collection<GadgetTarget> ();
                    gadgetItem.RequestContent (list);

                    foreach (var item in list) {
                      if (gadgetContent.RequestContentTarget (item.Id) is GadgetTarget gadget) {
                        item.ChangeFrom (gadget);
                        res = true;
                      }
                    }
                  }

                  // Test
                  if (gadgetItem.HasContentTest) {
                    var list = new Collection<GadgetTest> ();
                    gadgetItem.RequestContent (list);

                    foreach (var item in list) {
                      if (gadgetContent.RequestContentTest (item.Id) is GadgetTest gadget) {
                        item.UpdateFrom (gadget);
                        res = true;
                      }
                    }
                  }
                }
              }
            }

            // Target
            if (HasContentTarget && gadgetContent.HasContentTarget) {
              if (gadgetContent.HasContent) {
                var gadgetTargetList = new Collection<GadgetTarget> ();
                gadgetContent.RequestContent (gadgetTargetList);

                foreach (var gadgetTarget in gadgetTargetList) {
                  if (RequestTarget (gadgetTarget.Id) is GadgetTarget gadgetItem) {
                    gadgetItem.ChangeFrom (gadgetTarget);
                    res = true;
                  }
                }
              }
            }
          }
        }

        return (res);
      }