From 22a4d2e20289f72d2b1e71002db9db32c7680fe4 Mon Sep 17 00:00:00 2001 From: Oleg Demchenko Date: Fri, 5 Jan 2018 11:54:28 -0500 Subject: [PATCH] Add AllKeys property and GetEntitlementsKeys method (#20) * Add AllKeys property and GetEntitlementsKeys method * Fix method name GetEntitlementsKeys -> GetEntitlementKeys --- Xamarin.MacDev/EntitlementExtensions.cs | 27 +++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/Xamarin.MacDev/EntitlementExtensions.cs b/Xamarin.MacDev/EntitlementExtensions.cs index bbe1698..93daf75 100644 --- a/Xamarin.MacDev/EntitlementExtensions.cs +++ b/Xamarin.MacDev/EntitlementExtensions.cs @@ -6,6 +6,10 @@ // Copyright (c) 2016 Xamarin Inc. (www.xamarin.com) // +using System.Collections.Generic; +using System.Linq; +using System.Reflection; + namespace Xamarin.MacDev { public static class EntitlementKeys @@ -31,6 +35,17 @@ public static class EntitlementKeys public const string GetTaskAllow = "get-task-allow"; public const string Siri = "com.apple.developer.siri"; public const string APS = "aps-environment"; + + public static IEnumerable AllKeys { + get { + var entitlementKeys = typeof (EntitlementKeys).GetFields (BindingFlags.Public | BindingFlags.Static). + Where (f => f.FieldType == typeof (string)). + Select (field => (string) field.GetValue (null)). + ToList (); + + return entitlementKeys; + } + } } public static class EntitlementExtensions @@ -139,5 +154,17 @@ public static void SetPassBookIdentifiers (this PDictionary dict, PArray value) else dict[EntitlementKeys.PassBookIdentifiers] = value; } + + public static IEnumerable GetEntitlementKeys (this PDictionary dict) + { + var enabledEntitlements = new List (); + + foreach (var key in EntitlementKeys.AllKeys) { + if (dict.ContainsKey (key)) + enabledEntitlements.Add (key); + } + + return enabledEntitlements; + } } }