Inheritance: MonoBehaviour
コード例 #1
0
        public void OfType_Doesnt_Match_Control_Of_Wrong_Type()
        {
            var control = new Control2();
            var target = new Selector().OfType<Control1>();

            Assert.False(target.Match(control).ImmediateResult);
        }
コード例 #2
0
        public void OfType_Matches_Control_With_TemplatedParent()
        {
            var control = new Control1 { TemplatedParent = new Mock<ITemplatedControl>().Object };
            var target = new Selector().OfType<Control1>();

            Assert.True(target.Match(control).ImmediateResult);
        }
コード例 #3
0
ファイル: CalloutView.cs プロジェクト: 21Off/21Off
		public CalloutView (string text, PointF pt, NSObject target, Selector sel) : base(_initframe)
		{
			SetAnchorPoint (pt);
			Initialize ();
			Text = text;
			AddButtonTarget (target, sel);
		}
コード例 #4
0
        protected override void OnStart()
        {
            collection = new ObservableCollection<int>();

			var scene = new ReactiveScene();
			var layer = new ReactiveLayer2D();

            var layout = new LinearPanel()
            {
                ItemSpan = new Vector2DF(0, 36),
            };

            var selector = new Selector<int, Control>(CreateController(), layout);
            selector.Cursor.Texture = Engine.Graphics.CreateTexture2D("ListCursor.png");
            selector.BindKey(Control.Down, Control.Up, Control.Decide, Control.Cancel);
            selector.Loop = true;

            font = Engine.Graphics.CreateDynamicFont("", 20, new Color(255, 255, 255, 255), 0, new Color(0, 0, 0, 255));
            CollectionBinderForSelector<int>.Bind(selector, collection, c => new ListItem()
            {
                Font = font,
                Text = $"追加アイテム{c}",
            }, false);

			Engine.ChangeScene(scene);
			scene.AddLayer(layer);
			layer.AddObject(selector);
        }
コード例 #5
0
        public void OfType_Matches_Control_Of_Correct_Type()
        {
            var control = new Control1();
            var target = new Selector().OfType<Control1>();

            Assert.True(target.Match(control).ImmediateResult);
        }
コード例 #6
0
        /// <summary>
        /// Main method.
        /// </summary>
        /// <param name="selector"></param>
        /// <param name="context"></param>
        /// <param name="provider"></param>
        /// <exception cref="System.ArgumentNullException">selector or context or provider</exception>
        protected override void FillTreeWithData(Selector selector, ITypeDescriptorContext context, IServiceProvider provider)
        {
            selector.ThrowIfNull(nameof(selector));

            context.ThrowIfNull(nameof(context));

            provider.ThrowIfNull(nameof(provider));

            // Base method, clear the selector
            base.FillTreeWithData(selector, context, provider);

            // Scroll through the pages
            MultiPanel panel = (MultiPanel)context.Instance;
            foreach (MultiPanelPage page in panel.Controls)
            {
                SelectorNode node = new SelectorNode(page.Name, page);
                selector.Nodes.Add(node);

                if (page != panel.SelectedPage)
                    continue;

                selector.SelectedNode = node;
                return;
            }
        }
コード例 #7
0
ファイル: Native.cs プロジェクト: afrog33k/mobjc
        internal Native(IntPtr target, Selector selector, IntPtr imp, MethodSignature sig)
        {
            Contract.Requires(selector != null, "selector is null");
            Contract.Requires(target == IntPtr.Zero || imp != IntPtr.Zero, "imp is null");

            m_target = target;

            if (m_target != IntPtr.Zero)
            {
                if (ms_stackFrames == null)
                    ms_stackFrames = new Dictionary<MethodSignature, StackFrame>();	// note that we have to do this here so each thread gets its own dictionary

                m_selector = selector;
                m_imp = imp;
                m_sig = sig ?? new MethodSignature(target, (IntPtr) selector);

                if (!ms_stackFrames.TryGetValue(m_sig, out m_stackFrame))
                {
                    m_stackFrame = new StackFrame(m_sig);
                    ms_stackFrames.Add(m_sig, m_stackFrame);
                }

                Ffi.FillBuffer(m_stackFrame.ArgBuffers[0], target, "@");
                Ffi.FillBuffer(m_stackFrame.ArgBuffers[1], m_selector, ":");
            }
        }
コード例 #8
0
    /// <summary>
    /// Runs the code example.
    /// </summary>
    /// <param name="user">The AdWords user.</param>
    public void Run(AdWordsUser user) {
      // Get the ManagedCustomerService.
      ManagedCustomerService managedCustomerService = (ManagedCustomerService) user.GetService(
          AdWordsService.v201509.ManagedCustomerService);

      // Create selector.
      Selector selector = new Selector();
      selector.fields = new String[] {
          ManagedCustomer.Fields.CustomerId, ManagedCustomer.Fields.Name
      };

      try {
        // Get results.
        ManagedCustomerPage page = managedCustomerService.get(selector);

        // Display serviced account graph.
        if (page.entries != null) {
          // Create map from customerId to customer node.
          Dictionary<long, ManagedCustomerTreeNode> customerIdToCustomerNode =
              new Dictionary<long, ManagedCustomerTreeNode>();

          // Create account tree nodes for each customer.
          foreach (ManagedCustomer customer in page.entries) {
            ManagedCustomerTreeNode node = new ManagedCustomerTreeNode();
            node.Account = customer;
            customerIdToCustomerNode.Add(customer.customerId, node);
          }

          // For each link, connect nodes in tree.
          if (page.links != null) {
            foreach (ManagedCustomerLink link in page.links) {
              ManagedCustomerTreeNode managerNode =
                  customerIdToCustomerNode[link.managerCustomerId];
              ManagedCustomerTreeNode childNode = customerIdToCustomerNode[link.clientCustomerId];
              childNode.ParentNode = managerNode;
              if (managerNode != null) {
                managerNode.ChildAccounts.Add(childNode);
              }
            }
          }

          // Find the root account node in the tree.
          ManagedCustomerTreeNode rootNode = null;
          foreach (ManagedCustomer account in page.entries) {
            if (customerIdToCustomerNode[account.customerId].ParentNode == null) {
              rootNode = customerIdToCustomerNode[account.customerId];
              break;
            }
          }

          // Display account tree.
          Console.WriteLine("CustomerId, Name");
          Console.WriteLine(rootNode.ToTreeString(0, new StringBuilder()));
        } else {
          Console.WriteLine("No serviced accounts were found.");
        }
      } catch (Exception e) {
        throw new System.ApplicationException("Failed to create ad groups.", e);
      }
    }
コード例 #9
0
	public virtual void setUp() {
		instance = this;
		matchingProps = new bool[numProps];	
		selectedProps = new int[numProps];	
		numYackers = 0;
		points = 0;
	}
コード例 #10
0
        public void Name_Doesnt_Match_Control_Of_Wrong_Name()
        {
            var control = new Control1 { Name = "foo" };
            var target = new Selector().Name("bar");

            Assert.False(target.Match(control).ImmediateResult);
        }
コード例 #11
0
        public void Name_Matches_Control_With_Correct_Name()
        {
            var control = new Control1 { Name = "foo" };
            var target = new Selector().Name("foo");

            Assert.True(target.Match(control).ImmediateResult);
        }
コード例 #12
0
        public void should_return_all_the_score_with_max_diff()
        {
            var scores = new List<Score> { new Score("Arsenal", 43), new Score("Derby", 43), new Score("Ipswich", 23) };
            var maxDiffTeams = new Selector().SelectScore(scores);

            Assert.Equal(2, maxDiffTeams.Count);
        }
コード例 #13
0
		public MainSplitView () : base ()
		{
			MasterViewHidden = true;

			// create our master and detail views
			masterViewController = new Screens.iPad.NavTable.MasterNavTableViewController ();
			detailViewController = new Screens.iPad.BasicUIViewAnimation.BasicUIViewAnimationScreen ();

			// create an array of controllers from them and then assign it to the 
			// controllers property
			ViewControllers = new UIViewController[] { masterViewController,  detailViewController };
			
			// in this example, i expose an event on the master view called RowClicked, and i listen 
			// for it in here, and then call a method on the detail view to update. this class thereby 
			// becomes the defacto controller for the screen (both views).
			masterViewController.RowClicked += (sender, e) => {
				HandleRowClicked (e);
			};
			
			// when the master view controller is hid (portrait mode), we add a button to 
			// the detail view that when clicked will show the master view in a popover controller
			WillHideViewController += (sender, e) => {
				toggleMasterVisible = e.BarButtonItem.Action;
			};

			ShouldHideViewController = (svc, vc, orientation) => {
				return MasterViewHidden &&
				(orientation == UIInterfaceOrientation.Portrait || orientation == UIInterfaceOrientation.PortraitUpsideDown);
			};
		}
コード例 #14
0
        public void should_return_all_the_weather_with_max_diff()
        {
            var weathers = new List<Weather> { new Weather(1, 5f), new Weather(2, 15f), new Weather(3, 15f) };
            var maxDiffDays = new Selector().SelectWeather(weathers);

            Assert.Equal(2, maxDiffDays.Count);
        }
コード例 #15
0
    protected override void FillTreeWithData(Selector selector, ITypeDescriptorContext context, IServiceProvider provider)
    {
      object manager = Activator.CreateInstance(_managerType, new object[] { provider });
      DbConnection connection = (DbConnection)context.Instance;
      ObjectSelectorEditor.SelectorNode node;

      _selector = selector;

      _selector.Clear();

      if (manager != null)
      {
        int items = (int)_managerType.InvokeMember("GetConnectionCount", BindingFlags.Instance | BindingFlags.InvokeMethod | BindingFlags.Public, null, manager, null);
        string dataProvider;
        string connectionString;
        string connectionName;

        for (int n = 0; n < items; n++)
        {
          connectionString = (string)_managerType.InvokeMember("GetConnectionString", BindingFlags.Instance | BindingFlags.InvokeMethod | BindingFlags.Public, null, manager, new object[] { n });
          connectionName = (string)_managerType.InvokeMember("GetConnectionName", BindingFlags.Instance | BindingFlags.InvokeMethod | BindingFlags.Public, null, manager, new object[] { n });
          dataProvider = (string)_managerType.InvokeMember("GetProvider", BindingFlags.Instance | BindingFlags.InvokeMethod | BindingFlags.Public, null, manager, new object[] { n });
          if (String.Compare(dataProvider, "System.Data.SQLite", StringComparison.OrdinalIgnoreCase) == 0)
          {
            node = selector.AddNode(connectionName, connectionString, null);
            
            if (String.Compare(connectionString, connection.ConnectionString, StringComparison.OrdinalIgnoreCase) == 0)
              selector.SelectedNode = node;
          }
        }
        selector.AddNode("<New Connection...>", this, null);
      }
    }
コード例 #16
0
ファイル: CSS.cs プロジェクト: krikelin/SpiderView
 public Stylesheet(String stylesheet)
 {
     char currentChar = '\0';
     StringBuilder buffer = new StringBuilder();
     for (int i = 0, j = 0; i < stylesheet.Length; i++, j++)
     {
         currentChar = stylesheet[i];
         switch (currentChar)
         {
             case ' ':
                 continue;
             case '{':
                 {
                     int endIndex = stylesheet.IndexOf('}', i);
                     String block = stylesheet.Substring(i, endIndex - i);
                     Selector selector = new Selector(buffer.ToString().Trim(), block);
                     this.selectors.Add(selector);
                     i = endIndex - 1;
                     buffer.Clear();
                     continue;
                 }
             default:
                 buffer.Append(currentChar);
                 break;
         }
     }
 }
 public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value)
 {
     if (provider != null)
     {
         IWindowsFormsEditorService edSvc = (IWindowsFormsEditorService) provider.GetService(typeof(IWindowsFormsEditorService));
         if (edSvc == null)
         {
             return value;
         }
         if (this.selector == null)
         {
             this.selector = new Selector(this);
             DesignerUtils.ApplyTreeViewThemeStyles(this.selector);
         }
         this.prevValue = value;
         this.currValue = value;
         this.FillTreeWithData(this.selector, context, provider);
         this.selector.Start(edSvc, value);
         edSvc.DropDownControl(this.selector);
         this.selector.Stop();
         if (this.prevValue != this.currValue)
         {
             value = this.currValue;
         }
     }
     return value;
 }
コード例 #18
0
ファイル: ScrollTest.cs プロジェクト: NumAniCloud/Nac.Altseed
		protected override void OnStart()
		{
			var layout = new LinearPanel()
			{
				ItemSpan = new Vector2DF(0, 36),
			};
			var selector = new Selector<int, Control>(CreateController(), layout);
			selector.BindKey(Control.Down, Control.Up, Control.Decide, Control.Cancel);
			selector.Cursor.Texture = Engine.Graphics.CreateTexture2D("ListCursor.png");
			selector.IsControllerUpdated = true;

			var font = Engine.Graphics.CreateDynamicFont("", 20, new Color(255, 0, 0, 255), 0, new Color(0, 0, 0, 0));

			var size = selector.Cursor.Texture.Size;

			var scroll = new ScrollLayer()
			{
				Position = new Vector2DF(30, 30),
				CameraSize = new Vector2DF(200, 200),
				BindingAreaRange = new RectF(0, 25, 200, 150),
				BoundaryStartingPosition = new Vector2DF(0, 0),
				BoundaryEndingPosition = layout.ItemSpan * 10 + new Vector2DF(200, 0),
			};
			var areaChanged = selector.OnSelectionChanged
				.Select(c => selector.GetItemForChocie(c).Position)
				.Select(p => new RectF(p.X, p.Y, size.X, size.Y));
			scroll.SubscribeSeeingArea(areaChanged);

			var scene = new Scene();
			Engine.ChangeScene(scene);
			scene.AddLayer(scroll);
			scroll.AddObject(selector);

			for(int i = 0; i < 10; i++)
			{
				var obj = new TextObject2D()
				{
					Font = font,
					Text = $"アイテム{i}",
				};
				selector.AddChoice(i, obj);
			}

			var heart1 = new TextureObject2D()
			{
				Position = scroll.BoundaryEndingPosition - new Vector2DF(50, 50),
				Texture = Engine.Graphics.CreateTexture2D("Heart.png"),
			};
			scroll.AddObject(heart1);
			var heart2 = new TextureObject2D()
			{
				Position = scroll.BoundaryStartingPosition - new Vector2DF(0, 50),
				Texture = Engine.Graphics.CreateTexture2D("Heart.png"),
			};
			scroll.AddObject(heart2);

			var viewer = new ScrollBoundViewer(scroll);
			scroll.AddObject(viewer);
		}
コード例 #19
0
 public ColorMixerVIewModel(Slider red, Slider green, Slider blue)
 {
     CurrentColor = "Click me";
     selector = new Selector(red, green, blue);
     clickMeCommand=new ClickMeCommand(selector);
     selector.ColorChanged += selector_ColorChanged;
     selector.CurrentColor += selector_CurrentColor;
 }
コード例 #20
0
		/// <summary>
		/// Mapping for displayNameForKey:value
		/// </summary>
		/// <remarks>As of writing, MonoTouch doesn't yet map this function. The following code was taken from
		/// http://stackoverflow.com/questions/7577535/iphone-obtaining-a-list-of-countries-from-monotouch</remarks>
		public static string DisplayNameForKeyValue(this NSLocale locale, string key, string value)
		{
			IntPtr handle = locale.Handle;
			IntPtr selDisplayNameForKeyValue = new Selector ("displayNameForKey:value:").Handle;
			NSString nsKey = new NSString(key);
			NSString nsValue = new NSString(value);
			return NSString.FromHandle (MonoTouch.ObjCRuntime.Messaging.IntPtr_objc_msgSend_IntPtr_IntPtr (handle, selDisplayNameForKeyValue, nsKey.Handle, nsValue.Handle));
		}
コード例 #21
0
        public void Name_Doesnt_Match_Control_With_TemplatedParent()
        {
            var control = new Control1 { TemplatedParent = new Mock<ITemplatedControl>().Object };
            var target = new Selector().Name("foo");
            var activator = target.Match(control);

            Assert.False(target.Match(control).ImmediateResult);
        }
コード例 #22
0
        public void TargetType_Is_Class()
        {
            var selector = new Selector()
                .Is<Button>()
                .Class("foo");

            Assert.Equal(typeof(Button), selector.TargetType);
        }
コード例 #23
0
		public static void Show (this IMTMBProgressHUD This, Selector method, NSObject target, NSObject aObject, bool animated)
		{
			if (method == null)
				throw new ArgumentNullException ("method");
			if (target == null)
				throw new ArgumentNullException ("target");
			ApiDefinition.Messaging.void_objc_msgSend_IntPtr_IntPtr_IntPtr_bool (This.Handle, Selector.GetHandle ("showWhileExecuting:onTarget:withObject:animated:"), method.Handle, target.Handle, aObject == null ? IntPtr.Zero : aObject.Handle, animated);
		}
コード例 #24
0
    /// <summary>
    /// Runs the code example.
    /// </summary>
    /// <param name="user">The AdWords user.</param>
    public void Run(AdWordsUser user) {
      // Get the AdGroupCriterionService.
      AdGroupCriterionService adGroupCriterionService =
          (AdGroupCriterionService) user.GetService(
              AdWordsService.v201509.AdGroupCriterionService);

      // Create a selector.
      Selector selector = new Selector() {
        fields = new string[] {
          Criterion.Fields.Id, AdGroupCriterion.Fields.AdGroupId, Placement.Fields.PlacementUrl
        },
        predicates = new Predicate[] {
          // Select only placements.
          Predicate.Equals(Criterion.Fields.CriteriaType, "PLACEMENT")
        },
        paging = Paging.Default
      };

      AdGroupCriterionPage page = new AdGroupCriterionPage();

      try {
        do {
          // Get the keywords.
          page = adGroupCriterionService.get(selector);

          // Display the results.
          if (page != null && page.entries != null) {
            int i = selector.paging.startIndex;

            foreach (AdGroupCriterion adGroupCriterion in page.entries) {
              bool isNegative = (adGroupCriterion is NegativeAdGroupCriterion);

              // If you are retrieving multiple type of criteria, then you may
              // need to check for
              //
              // if (adGroupCriterion is Placement) { ... }
              //
              // to identify the criterion type.
              Placement placement = (Placement) adGroupCriterion.criterion;
              if (isNegative) {
                Console.WriteLine("{0}) Negative placement with ad group ID = '{1}', placement " +
                    "ID = '{2}', and url = '{3}' was found.", i + 1, adGroupCriterion.adGroupId,
                    placement.id, placement.url);
              } else {
                Console.WriteLine("{0}) Placement with ad group ID = '{1}', placement ID = " +
                    "'{2}' and url = '{3}' was found.", i + 1, adGroupCriterion.adGroupId,
                    placement.id, placement.url);
              }
              i++;
            }
          }
          selector.paging.IncreaseOffset();
        } while (selector.paging.startIndex < page.totalNumEntries);
        Console.WriteLine("Number of placements found: {0}", page.totalNumEntries);
      } catch (Exception e) {
        throw new System.ApplicationException("Failed to retrieve placements.", e);
      }
    }
コード例 #25
0
ファイル: Selector.cs プロジェクト: crempp/paisg
    void select()
    {
        // Set selected object
        selectedObject = this;

        // Change to the selection shader
        renderer.material.shader = selectedShader;
        renderer.material.SetColor ("_OutlineColor", selectionColor);
    }
コード例 #26
0
ファイル: Validate.cs プロジェクト: RangoLee/mac-samples
		public bool ValidateUserInterfaceItem (NSObject anItem)
		{
		 	Selector actionSelPtr = new Selector (anItem.PerformSelector (actionSel).Handle);
		 
		 	if (actionSelPtr == pasteSel)
		 		return NSPasteboard.GeneralPasteboard.CanReadObjectForClasses (new Class [] { ( new Class ("NSImage") )} , null);
		 
		 	return true;
		}
コード例 #27
0
    /// <summary>
    /// Runs the code example.
    /// </summary>
    /// <param name="user">The AdWords user.</param>
    /// <param name="adGroupId">Id of the ad group for which keyword bid
    /// simulations are retrieved.</param>
    /// <param name="keywordId">Id of the keyword for which bid simulations are
    /// retrieved.</param>
    public void Run(AdWordsUser user, long adGroupId, long keywordId) {
      // Get the DataService.
      DataService dataService = (DataService) user.GetService(AdWordsService.v201509.DataService);

      // Create the selector.
      Selector selector = new Selector() {
        fields = new string[] {
          CriterionBidLandscape.Fields.AdGroupId, CriterionBidLandscape.Fields.CriterionId,
          CriterionBidLandscape.Fields.StartDate, CriterionBidLandscape.Fields.EndDate, 
          BidLandscapeLandscapePoint.Fields.Bid, BidLandscapeLandscapePoint.Fields.LocalClicks,
          BidLandscapeLandscapePoint.Fields.LocalCost,
          BidLandscapeLandscapePoint.Fields.LocalImpressions
        },
        predicates = new Predicate[] {
          Predicate.Equals(CriterionBidLandscape.Fields.AdGroupId, adGroupId),
          Predicate.Equals(CriterionBidLandscape.Fields.CriterionId, keywordId)
        },
        paging = Paging.Default
      };

      CriterionBidLandscapePage page = new CriterionBidLandscapePage();
      int bidLandscapeCount = 0;
      int landscapePointsInLastResponse = 0;

      try {
        do {
          // Get bid landscape for keywords.
          page = dataService.getCriterionBidLandscape(selector);
          landscapePointsInLastResponse = 0;

          // Display bid landscapes.
          if (page != null && page.entries != null) {
            foreach (CriterionBidLandscape bidLandscape in page.entries) {
              Console.WriteLine("{0}) Found criterion bid landscape with ad group id '{1}', " +
                  "keyword id '{2}', start date '{3}', end date '{4}', and landscape points:",
                  bidLandscapeCount + 1, bidLandscape.adGroupId, bidLandscape.criterionId,
                  bidLandscape.startDate, bidLandscape.endDate);
              foreach (BidLandscapeLandscapePoint bidLandscapePoint in
                  bidLandscape.landscapePoints) {
                Console.WriteLine("- bid: {0} => clicks: {1}, cost: {2}, impressions: {3}\n",
                    bidLandscapePoint.bid.microAmount, bidLandscapePoint.clicks,
                    bidLandscapePoint.cost.microAmount, bidLandscapePoint.impressions);
                landscapePointsInLastResponse++;
              }
              bidLandscapeCount++;
            }
          }
          // Offset by the number of landscape points, NOT the number
          // of entries (bid landscapes) in the last response.
          selector.paging.IncreaseOffsetBy(landscapePointsInLastResponse);
        } while (landscapePointsInLastResponse > 0 &&
            landscapePointsInLastResponse < selector.paging.numberResults);
        Console.WriteLine("Number of keyword bid landscapes found: {0}", bidLandscapeCount);
      } catch (Exception e) {
        throw new System.ApplicationException("Failed to retrieve keyword bid landscapes.", e);
      }
    }
コード例 #28
0
 void OnEnable()
 {
     Debug.Log("Unit Handler turned on");
     ev = this.GetComponentInParent<EventSystem>();
     ev.GetComponentInParent<PhysicsRaycaster>();
     unitPathRender = GetComponentInChildren<LineRenderer>();
     Instantiate(selector);
     selectScript = selector.GetComponent<Selector>();
 }
コード例 #29
0
        private static string GenerateContent(Selector sel)
        {
            SelectorSpecificity specificity = new SelectorSpecificity(sel);

            StringBuilder sb = new StringBuilder();
            sb.AppendLine("Selector specificity:\t\t" + specificity);

            return sb.ToString().Trim();
        }
コード例 #30
0
        static SoulWarsAI()
        {
            BlueTeamBots = new Selector<uint, string, AIBot>();
            RedTeamBots = new Selector<uint, string, AIBot>();

            BlueStatuePoint = new Point(101, 196);
            RedStatuePoint = new Point(149, 52);
            SoulStatuePoint = new Point(125, 124);
        }
コード例 #31
0
 public void Cleanup()
 {
     // cleanup after us
     MessageSend.void_objc_msgSend(nativeArray, Selector.GetHandle("release"));
     nativeArray = IntPtr.Zero;
 }
コード例 #32
0
 public static void CtProductConfigInitialized(this ICleverTapProductConfigDelegate This)
 {
     global::ApiDefinition.Messaging.void_objc_msgSend(This.Handle, Selector.GetHandle("ctProductConfigInitialized"));
 }
コード例 #33
0
 public void CallExportedInstanceMethod()
 {
     MessageSend.void_objc_msgSend(subclassed.Handle, Selector.GetHandle("exportedInstanceMethod"));
 }
コード例 #34
0
        protected override void OnRegisterProtocol(ObjCType type)
        {
            var protocol = Protocol.objc_getProtocol(type.ProtocolName);

            if (protocol != IntPtr.Zero)
            {
                type.Handle = protocol;
                if (!type_map.ContainsKey(protocol))
                {
                    type_map [protocol] = type;
                }
                return;
            }

            protocol = Protocol.objc_allocateProtocol(type.ProtocolName);

            if (type.Protocols != null)
            {
                foreach (var proto in type.Protocols)
                {
                    if (proto.ProtocolName == "JSExport")
                    {
#if MONOMAC
                        const string msg = "Detected a protocol ({0}) inheriting from the JSExport protocol while using the dynamic registrar. It is not possible to export protocols to JavaScriptCore dynamically; the static registrar must be used (add '--registrar:static' to the additional mmp arguments in the project's Mac Build options to select the static registrar).";
#else
                        const string msg = "Detected a protocol ({0}) inheriting from the JSExport protocol while using the dynamic registrar. It is not possible to export protocols to JavaScriptCore dynamically; the static registrar must be used (add '--registrar:static' to the additional mtouch arguments in the project's iOS Build options to select the static registrar).";
#endif
                        ErrorHelper.Warning(4147, msg, GetTypeFullName(type.Type));
                    }
                    Protocol.protocol_addProtocol(protocol, proto.Handle);
                }
            }

            if (type.Properties != null)
            {
                foreach (var property in type.Properties)
                {
                    int count;
                    var props = GetPropertyAttributes(property, out count, true);
                    // Only required instance properties are added (the rest of the logic is commented out in the public source at least,
                    // see file objc4-647/runtime/objc-runtime-old.mm in Apple's open source code). Still add all properties in case Apple
                    // implements their missing bits.
                    Protocol.protocol_addProperty(protocol, property.Selector, props, count, !property.IsOptional, !property.IsStatic);
                    // The properties need to be added as methods as well.
                    var propertyType = ToSignature(property.PropertyType, property, false);
                    Protocol.protocol_addMethodDescription(protocol, Selector.GetHandle(property.GetterSelector), propertyType + "@:", !property.IsOptional, !property.IsStatic);
                    if (!property.IsReadOnly)
                    {
                        Protocol.protocol_addMethodDescription(protocol, Selector.GetHandle(property.SetterSelector), "v@:" + propertyType, !property.IsOptional, !property.IsStatic);
                    }
                }
            }

            if (type.Methods != null)
            {
                foreach (var method in type.Methods)
                {
                    Protocol.protocol_addMethodDescription(protocol, Selector.GetHandle(method.Selector), method.Signature, !method.IsOptional, !method.IsStatic);
                }
            }

            Protocol.objc_registerProtocol(protocol);
            type_map [protocol] = type;

            Trace("   [DYNAMIC PROTOCOL] Registered the protocol {0} for {1}", type.ProtocolName, type.Type.FullName);
        }
コード例 #35
0
        public static void GlobalSetClass(Class kls, string codedName)
        {
            if (codedName == null)
            {
                throw new ArgumentNullException("codedName");
            }
            if (kls == null)
            {
                throw new ArgumentNullException("kls");
            }

            using (var nsname = new NSString(codedName))
                XamCore.ObjCRuntime.Messaging.void_objc_msgSend_IntPtr_IntPtr(class_ptr, Selector.GetHandle("setClass:forClassName:"), kls.Handle, nsname.Handle);
        }
コード例 #36
0
 public static int GetDrawer(this IEpos2PrinterStatusInfo This)
 {
     return(global::ApiDefinition.Messaging.int_objc_msgSend(This.Handle, Selector.GetHandle("drawer")));
 }
コード例 #37
0
 public void Setup()
 {
     // Create a new array
     nativeArray = MessageSend.IntPtr_objc_msgSend(MessageSend.IntPtr_objc_msgSend(mutablearray_class, Selector.GetHandle("alloc")), Selector.GetHandle("init"));
     for (var i = 0; i < ArraySize; i++)
     {
         var element = MessageSend.IntPtr_objc_msgSend(MessageSend.IntPtr_objc_msgSend(nsobject_class, Selector.GetHandle("alloc")), Selector.GetHandle("init"));
         MessageSend.void_objc_msgSend_IntPtr(nativeArray, Selector.GetHandle("addObject:"), element);
         MessageSend.void_objc_msgSend(element, Selector.GetHandle("release"));
     }
     MessageSend.void_objc_msgSend_IntPtr(obj.Handle, Selector.GetHandle("setSomeArray:"), nativeArray);
 }
コード例 #38
0
        public static void SetCustomerData(string data, string key)
        {
            if (data == null)
            {
                throw new ArgumentNullException("data");
            }
            if (key == null)
            {
                throw new ArgumentNullException("key");
            }
            var nsdata = NSString.CreateNative(data);
            var nskey  = NSString.CreateNative(key);

            global::ApiDefinition.Messaging.void_objc_msgSend_IntPtr_IntPtr(class_ptr, Selector.GetHandle("setCustomerData:forKey:"), nsdata, nskey);
            NSString.ReleaseNative(nsdata);
            NSString.ReleaseNative(nskey);
        }
コード例 #39
0
 /// <summary>
 /// In a class that inherits from this class overriding this method, you can change some graphics.
 /// The panel inside the popup, and selector.
 /// </summary>
 protected virtual void InitUIElements()
 {
     _Panel = new StackPanel();
     _Child = new ListBox();
     _Panel.Children.Add(_Child);
 }
コード例 #40
0
        /// <summary>
        /// Runs the code example.
        /// </summary>
        /// <param name="user">The AdWords user.</param>
        public void Run(AdWordsUser user)
        {
            // Get the AdGroupCriterionService.
            AdGroupCriterionService adGroupCriterionService =
                (AdGroupCriterionService)user.GetService(
                    AdWordsService.v201509.AdGroupCriterionService);

            // Create a selector.
            Selector selector = new Selector()
            {
                fields = new string[] {
                    Criterion.Fields.Id, AdGroupCriterion.Fields.AdGroupId, Placement.Fields.PlacementUrl
                },
                predicates = new Predicate[] {
                    // Select only placements.
                    Predicate.Equals(Criterion.Fields.CriteriaType, "PLACEMENT")
                },
                paging = Paging.Default
            };

            AdGroupCriterionPage page = new AdGroupCriterionPage();

            try {
                do
                {
                    // Get the keywords.
                    page = adGroupCriterionService.get(selector);

                    // Display the results.
                    if (page != null && page.entries != null)
                    {
                        int i = selector.paging.startIndex;

                        foreach (AdGroupCriterion adGroupCriterion in page.entries)
                        {
                            bool isNegative = (adGroupCriterion is NegativeAdGroupCriterion);

                            // If you are retrieving multiple type of criteria, then you may
                            // need to check for
                            //
                            // if (adGroupCriterion is Placement) { ... }
                            //
                            // to identify the criterion type.
                            Placement placement = (Placement)adGroupCriterion.criterion;
                            if (isNegative)
                            {
                                Console.WriteLine("{0}) Negative placement with ad group ID = '{1}', placement " +
                                                  "ID = '{2}', and url = '{3}' was found.", i + 1, adGroupCriterion.adGroupId,
                                                  placement.id, placement.url);
                            }
                            else
                            {
                                Console.WriteLine("{0}) Placement with ad group ID = '{1}', placement ID = " +
                                                  "'{2}' and url = '{3}' was found.", i + 1, adGroupCriterion.adGroupId,
                                                  placement.id, placement.url);
                            }
                            i++;
                        }
                    }
                    selector.paging.IncreaseOffset();
                } while (selector.paging.startIndex < page.totalNumEntries);
                Console.WriteLine("Number of placements found: {0}", page.totalNumEntries);
            } catch (Exception e) {
                throw new System.ApplicationException("Failed to retrieve placements.", e);
            }
        }
コード例 #41
0
ファイル: Plugin.cs プロジェクト: zergmk2/openrpa
 public IElement[] GetElementsWithSelector(Selector selector, IElement fromElement = null, int maxresults = 1)
 {
     return(new IElement[] { });
 }
コード例 #42
0
 public virtual void AddMenuItem(WKMenuItemIcon itemIcon, string title, Selector action)
 {
     throw new PlatformNotSupportedException(Constants.WatchKitRemoved);
 }
コード例 #43
0
        /// <summary>
        /// The main method.
        /// </summary>
        /// <param name="args">Command line arguments.</param>
        static void _Main(string[] args)
        {
            AdWordsUser user = new AdWordsUser();

            // This code example shows how to run an AdWords API web application
            // while incorporating the OAuth2 installed application flow into your
            // application. If your application uses a single AdWords manager account
            // login to make calls to all your accounts, you shouldn't use this code
            // example. Instead, you should run OAuthTokenGenerator.exe to generate a
            // refresh token and use that configuration in your application's
            // App.config.
            AdWordsAppConfig config = user.Config as AdWordsAppConfig;

            if (user.Config.OAuth2Mode == OAuth2Flow.APPLICATION &&
                string.IsNullOrEmpty(config.OAuth2RefreshToken))
            {
                DoAuth2Authorization(user);
            }

            Console.Write("Enter the customer id: ");
            string customerId = Console.ReadLine();

            config.ClientCustomerId = customerId;

            // Get the CampaignService.
            CampaignService campaignService =
                (CampaignService)user.GetService(AdWordsService.v201802.CampaignService);

            Selector selector = new Selector()
            {
                fields   = new string[] { Campaign.Fields.Id, Campaign.Fields.Name, Campaign.Fields.Status },
                ordering = new OrderBy[] { OrderBy.Asc(Campaign.Fields.Name) },
                paging   = Paging.Default
            };

            CampaignPage page = new CampaignPage();

            try {
                do
                {
                    // Get the campaigns.
                    page = campaignService.get(selector);

                    // Display the results.
                    if (page != null && page.entries != null)
                    {
                        int i = selector.paging.startIndex;
                        foreach (Campaign campaign in page.entries)
                        {
                            Console.WriteLine("{0}) Campaign with id = '{1}', name = '{2}' and status = '{3}'" +
                                              " was found.", i + 1, campaign.id, campaign.name, campaign.status);
                            i++;
                        }
                    }
                    selector.paging.IncreaseOffset();
                } while (selector.paging.startIndex < page.totalNumEntries);
                Console.WriteLine("Number of campaigns found: {0}", page.totalNumEntries);
            } catch (Exception e) {
                throw new System.ApplicationException("Failed to retrieve campaigns", e);
            }
        }
コード例 #44
0
        public FlutterEngine(string?name, NSObject?project)
            : base(NSObjectFlag.Empty)
        {
            var project__handle__ = project.GetHandle();
            var nsname            = CFString.CreateNative(name);

            IsDirectBinding = GetType().Assembly == global::ApiDefinition.Messaging.this_assembly;
            if (IsDirectBinding)
            {
                InitializeHandle(global::ApiDefinition.Messaging.IntPtr_objc_msgSend_IntPtr_IntPtr(this.Handle, Selector.GetHandle("initWithName:project:"), nsname, project__handle__), "initWithName:project:");
            }
            else
            {
                InitializeHandle(global::ApiDefinition.Messaging.IntPtr_objc_msgSendSuper_IntPtr_IntPtr(this.SuperHandle, Selector.GetHandle("initWithName:project:"), nsname, project__handle__), "initWithName:project:");
            }
            CFString.ReleaseNative(nsname);
        }
コード例 #45
0
        public static void StartWithAppID(string appId, bool locationAllowed, global::System.Double rate, string channelId)
        {
            if (appId == null)
            {
                throw new ArgumentNullException("appId");
            }
            if (channelId == null)
            {
                throw new ArgumentNullException("channelId");
            }
            var nsappId     = NSString.CreateNative(appId);
            var nschannelId = NSString.CreateNative(channelId);

            global::ApiDefinition.Messaging.void_objc_msgSend_IntPtr_bool_Double_IntPtr(class_ptr, Selector.GetHandle("startWithAppID:location:rateOfLaunch:channelId:"), nsappId, locationAllowed, rate, nschannelId);
            NSString.ReleaseNative(nsappId);
            NSString.ReleaseNative(nschannelId);
        }
コード例 #46
0
 public void CallExportedStaticMethod()
 {
     MessageSend.void_objc_msgSend(subclassed_class, Selector.GetHandle("exportedStaticMethod"));
 }
コード例 #47
0
        /// <summary>
        /// Runs the code example.
        /// </summary>
        /// <param name="user">The AdWords user.</param>
        /// <param name="campaignId">Id of the campaign for which disapproved ads
        /// are retrieved.</param>
        public void Run(AdWordsUser user, long campaignId)
        {
            using (AdGroupAdService adGroupAdService =
                       (AdGroupAdService)user.GetService(AdWordsService.v201806.AdGroupAdService)) {
                // Create the selector.
                Selector selector = new Selector()
                {
                    fields = new string[] {
                        Ad.Fields.Id, AdGroupAd.Fields.PolicySummary
                    },
                    predicates = new Predicate[] {
                        Predicate.Equals(AdGroup.Fields.CampaignId, campaignId),
                        Predicate.Equals(AdGroupAdPolicySummary.Fields.CombinedApprovalStatus,
                                         PolicyApprovalStatus.DISAPPROVED.ToString())
                    },
                    paging = Paging.Default
                };

                AdGroupAdPage page = new AdGroupAdPage();
                int           disapprovedAdsCount = 0;

                try {
                    do
                    {
                        // Get the disapproved ads.
                        page = adGroupAdService.get(selector);

                        // Display the results.
                        if (page != null && page.entries != null)
                        {
                            foreach (AdGroupAd adGroupAd in page.entries)
                            {
                                AdGroupAdPolicySummary policySummary = adGroupAd.policySummary;
                                disapprovedAdsCount++;
                                Console.WriteLine("Ad with ID {0} and type '{1}' was disapproved with the " +
                                                  "following policy topic entries: ", adGroupAd.ad.id, adGroupAd.ad.AdType);
                                // Display the policy topic entries related to the ad disapproval.
                                foreach (PolicyTopicEntry policyTopicEntry in policySummary.policyTopicEntries)
                                {
                                    Console.WriteLine("  topic id: {0}, topic name: '{1}'",
                                                      policyTopicEntry.policyTopicId, policyTopicEntry.policyTopicName);
                                    // Display the attributes and values that triggered the policy topic.
                                    if (policyTopicEntry.policyTopicEvidences != null)
                                    {
                                        foreach (PolicyTopicEvidence evidence in
                                                 policyTopicEntry.policyTopicEvidences)
                                        {
                                            Console.WriteLine("    evidence type: {0}",
                                                              evidence.policyTopicEvidenceType);
                                            if (evidence.evidenceTextList != null)
                                            {
                                                for (int i = 0; i < evidence.evidenceTextList.Length; i++)
                                                {
                                                    Console.WriteLine("      evidence text[{0}]: {1}",
                                                                      i, evidence.evidenceTextList[i]);
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }

                        selector.paging.IncreaseOffset();
                    } while (selector.paging.startIndex < page.totalNumEntries);
                    Console.WriteLine("Number of disapproved ads found: {0}", disapprovedAdsCount);
                } catch (Exception e) {
                    throw new System.ApplicationException("Failed to get disapproved ads.", e);
                }
            }
        }
コード例 #48
0
        public static void StartWithAppID(string appId, global::System.Double rate)
        {
            if (appId == null)
            {
                throw new ArgumentNullException("appId");
            }
            var nsappId = NSString.CreateNative(appId);

            global::ApiDefinition.Messaging.void_objc_msgSend_IntPtr_Double(class_ptr, Selector.GetHandle("startWithAppID:rateOfLaunch:"), nsappId, rate);
            NSString.ReleaseNative(nsappId);
        }
コード例 #49
0
        public virtual bool Run(string?entrypoint)
        {
            var  nsentrypoint = CFString.CreateNative(entrypoint);
            bool ret;

            if (IsDirectBinding)
            {
                ret = global::ApiDefinition.Messaging.bool_objc_msgSend_IntPtr(this.Handle, Selector.GetHandle("runWithEntrypoint:"), nsentrypoint);
            }
            else
            {
                ret = global::ApiDefinition.Messaging.bool_objc_msgSendSuper_IntPtr(this.SuperHandle, Selector.GetHandle("runWithEntrypoint:"), nsentrypoint);
            }
            CFString.ReleaseNative(nsentrypoint);
            return(ret !);
        }
コード例 #50
0
        public AsParamValue(NSCoder coder) : base(NSObjectFlag.Empty)
        {
            IsDirectBinding = GetType().Assembly == global::ApiDefinition.Messaging.this_assembly;

            if (IsDirectBinding)
            {
                InitializeHandle(global::ApiDefinition.Messaging.IntPtr_objc_msgSend_IntPtr(this.Handle, Selector.GetHandle("initWithCoder:"), coder.Handle), "initWithCoder:");
            }
            else
            {
                InitializeHandle(global::ApiDefinition.Messaging.IntPtr_objc_msgSendSuper_IntPtr(this.SuperHandle, Selector.GetHandle("initWithCoder:"), coder.Handle), "initWithCoder:");
            }
        }
コード例 #51
0
 public void CallReturnUnknownManagedWrapperCleanup()
 {
     // cleanup after us
     MessageSend.void_objc_msgSend(someObjectUnknownManagedWrapper, Selector.GetHandle("release"));
     someObjectUnknownManagedWrapper = IntPtr.Zero;
 }
コード例 #52
0
 public void CallReturnKnownManagedWrapperSetup()
 {
     // Create a new object that the bridge knows about
     someObjectKnownManagedWrapper = new NSObject();
     MessageSend.void_objc_msgSend_IntPtr(obj.Handle, Selector.GetHandle("setSomeObject:"), someObjectKnownManagedWrapper.Handle);
 }
コード例 #53
0
        bool RegisterMethod(ObjCMethod method)
        {
            IntPtr reg_handle;
            IntPtr tramp;

            reg_handle = (method.IsStatic && !method.IsCategoryInstance) ? Class.object_getClass(method.DeclaringType.Handle) : method.DeclaringType.Handle;

            switch (method.Trampoline)
            {
            case Trampoline.Constructor:
                tramp = Method.ConstructorTrampoline;
                break;

            case Trampoline.Double:
                tramp = Method.DoubleTrampoline;
                break;

            case Trampoline.Long:
                tramp = Method.LongTrampoline;
                break;

            case Trampoline.Normal:
                tramp = Method.Trampoline;
                break;

            case Trampoline.Release:
                tramp = Method.ReleaseTrampoline;
                break;

            case Trampoline.Retain:
                tramp = Method.RetainTrampoline;
                break;

            case Trampoline.Single:
                tramp = Method.SingleTrampoline;
                break;

            case Trampoline.Static:
                tramp = Method.StaticTrampoline;
                break;

            case Trampoline.StaticDouble:
                tramp = Method.StaticDoubleTrampoline;
                break;

            case Trampoline.StaticLong:
                tramp = Method.StaticLongTrampoline;
                break;

            case Trampoline.StaticSingle:
                tramp = Method.StaticSingleTrampoline;
                break;

            case Trampoline.StaticStret:
                tramp = Method.StaticStretTrampoline;
                break;

            case Trampoline.Stret:
                tramp = Method.StretTrampoline;
                break;

            case Trampoline.X86_DoubleABI_StaticStretTrampoline:
                tramp = Method.X86_DoubleABI_StaticStretTrampoline;
                break;

            case Trampoline.X86_DoubleABI_StretTrampoline:
                tramp = Method.X86_DoubleABI_StretTrampoline;
                break;

#if MONOMAC
            case Trampoline.CopyWithZone1:
                tramp = Method.CopyWithZone1;
                break;

            case Trampoline.CopyWithZone2:
                tramp = Method.CopyWithZone2;
                break;
#endif
            case Trampoline.GetGCHandle:
                tramp = Method.GetGCHandleTrampoline;
                break;

            case Trampoline.SetGCHandle:
                tramp = Method.SetGCHandleTrampoline;
                break;

            default:
                throw ErrorHelper.CreateError(4144, "Cannot register the method '{0}.{1}' since it does not have an associated trampoline. Please file a bug report at http://bugzilla.xamarin.com", method.DeclaringType.Type.FullName, method.Name);
            }

            return(Class.class_addMethod(reg_handle, Selector.GetHandle(method.Selector), tramp, method.Signature));
        }
コード例 #54
0
 public void CallOverriddenInstanceMethod()
 {
     MessageSend.void_objc_msgSend(subclassed.Handle, Selector.GetHandle("V"));
 }
コード例 #55
0
 public virtual void SetEnabled(bool value)
 {
     if (IsDirectBinding)
     {
         global::ApiDefinition.Messaging.void_objc_msgSend_bool(this.Handle, Selector.GetHandle("setEnabled:"), value);
     }
     else
     {
         global::ApiDefinition.Messaging.void_objc_msgSendSuper_bool(this.SuperHandle, Selector.GetHandle("setEnabled:"), value);
     }
 }
コード例 #56
0
 public void CallReturnUnknownManagedWrapperSetup()
 {
     // Create a new object that the bridge knows about
     someObjectUnknownManagedWrapper = MessageSend.IntPtr_objc_msgSend(MessageSend.IntPtr_objc_msgSend(nsobject_class, Selector.GetHandle("alloc")), Selector.GetHandle("init"));
     MessageSend.void_objc_msgSend_IntPtr(obj.Handle, Selector.GetHandle("setSomeObject:"), someObjectUnknownManagedWrapper);
 }
コード例 #57
0
        public static void StartWithAppID(string appId, string channelId)
        {
            if (appId == null)
            {
                throw new ArgumentNullException("appId");
            }
            if (channelId == null)
            {
                throw new ArgumentNullException("channelId");
            }
            var nsappId     = NSString.CreateNative(appId);
            var nschannelId = NSString.CreateNative(channelId);

            global::ApiDefinition.Messaging.void_objc_msgSend_IntPtr_IntPtr(class_ptr, Selector.GetHandle("startWithAppID:channelId:"), nsappId, nschannelId);
            NSString.ReleaseNative(nsappId);
            NSString.ReleaseNative(nschannelId);
        }
コード例 #58
0
 public static void SetSetOption(int option)
 {
     global::ApiDefinition.Messaging.void_objc_msgSend_int(class_ptr, Selector.GetHandle("setSetOption:"), option);
 }
コード例 #59
0
 public virtual void AddMenuItem(global::UIKit.UIImage image, string title, Selector action)
 {
     throw new PlatformNotSupportedException(Constants.WatchKitRemoved);
 }
コード例 #60
0
        /// <summary>
        /// Runs the code example.
        /// </summary>
        /// <param name="user">The AdWords user.</param>
        public void Run(AdWordsUser user)
        {
            using (AdwordsUserListService userListService =
                       (AdwordsUserListService)user.GetService(
                           AdWordsService.v201806.AdwordsUserListService))
                using (ConversionTrackerService conversionTrackerService =
                           (ConversionTrackerService)user.GetService(AdWordsService.v201806.
                                                                     ConversionTrackerService)) {
                    BasicUserList userList = new BasicUserList {
                        name               = "Mars cruise customers #" + ExampleUtilities.GetRandomString(),
                        description        = "A list of mars cruise customers in the last year.",
                        status             = UserListMembershipStatus.OPEN,
                        membershipLifeSpan = 365
                    };

                    UserListConversionType conversionType = new UserListConversionType {
                        name = userList.name
                    };
                    userList.conversionTypes = new UserListConversionType[] { conversionType };

                    // Optional: Set the user list status.
                    userList.status = UserListMembershipStatus.OPEN;

                    // Create the operation.
                    UserListOperation operation = new UserListOperation {
                        operand   = userList,
                        @operator = Operator.ADD
                    };

                    try {
                        // Add the user list.
                        UserListReturnValue retval = userListService.mutate(
                            new UserListOperation[] { operation });

                        UserList newUserList = retval.value[0];

                        Console.WriteLine("User list with name '{0}' and id '{1}' was added.",
                                          newUserList.name, newUserList.id);

                        List <string> conversionIds = new List <string>();
                        Array.ForEach(userList.conversionTypes, delegate(UserListConversionType item) {
                            conversionIds.Add(item.id.ToString());
                        });

                        // Create the selector.
                        Selector selector = new Selector()
                        {
                            fields = new string[] {
                                ConversionTracker.Fields.Id,
                                ConversionTracker.Fields.GoogleGlobalSiteTag,
                                ConversionTracker.Fields.GoogleEventSnippet
                            },
                            predicates = new Predicate[] {
                                Predicate.In(ConversionTracker.Fields.Id, conversionIds.ToArray())
                            }
                        };

                        // Get all conversion trackers.
                        ConversionTrackerPage page = conversionTrackerService.get(selector);

                        if (page != null && page.entries != null)
                        {
                            foreach (ConversionTracker tracker in page.entries)
                            {
                                Console.WriteLine("Google global site tag:\n{0}\nGoogle event snippet:\n{1}",
                                                  tracker.googleGlobalSiteTag, tracker.googleGlobalSiteTag);
                            }
                        }
                    } catch (Exception e) {
                        throw new System.ApplicationException("Failed to add user lists (a.k.a. audiences).", e);
                    }
                }
        }