public void GetPermissionNameForObjectAsync(object context, EventHandler <GetPermissionNameForObjectCompletedEventArgs> action, GlymaSecurableObject securableObject) { var guid = Guid.NewGuid(); ObjectDictionary.Add(guid, context); GetPermissionNameForObjectCompletedEventHandlers.Add(guid, action); Client.GetPermissionNameForObjectAsync(App.Params.SiteUrl, securableObject, guid); }
private void ClientOnGetPermissionNameForObjectCompleted(object sender, GetPermissionNameForObjectCompletedEventArgs e) { if (e.UserState is Guid) { var guid = (Guid)e.UserState; if (ObjectDictionary.ContainsKey(guid) && GetPermissionNameForObjectCompletedEventHandlers.ContainsKey(guid)) { //back compatibility with old version if (App.PermissionLevel == PermissionLevel.OldReader) { e.Result.Result = PermissionLevel.Reader.ToString(); } else if (App.PermissionLevel == PermissionLevel.OldAuthor) { e.Result.Result = PermissionLevel.Author.ToString(); } GetPermissionNameForObjectCompletedEventHandlers[guid](ObjectDictionary[guid], e); GetPermissionNameForObjectCompletedEventHandlers.Remove(guid); ObjectDictionary.Remove(guid); } } }