コード例 #1
0
        private async void btnSaveChanges_Click(object sender, RoutedEventArgs e)
        {
            List <int?>   addedUsers      = getAddedUsers();
            List <int?>   removedUsers    = getRemovedUsers();
            List <int?>   addedRoles      = getAddedRoles();
            List <int?>   removedRoles    = getRemovedRoles();
            List <string> addedChannels   = getAddedChannels();
            List <int?>   removedChannels = getRemovedChannels();

            try
            {
                if (addedUsers.Count != 0)
                {
                    await groupsApi.AddUsersToGroupAsync(group.Id, addedUsers);
                }

                if (removedUsers.Count != 0)
                {
                    //await groupsApi.RemoveUsersFromGroupAsync(groupId, removedUsers);
                }

                if (addedRoles.Count != 0)
                {
                    await groupsApi.AddRolesToGroupAsync(group.Id, addedRoles);
                }

                if (removedRoles.Count != 0)
                {
                    //await groupsApi.RemoveRolesFromGroupAsync(groupId, removedRoles);
                }

                foreach (string channelName in addedChannels)
                {
                    await channelsApi.CreateChannelAsync(group.Id, channelName);
                }

                foreach (int channelId in removedChannels)
                {
                    await channelsApi.DeleteChannelAsync(channelId);
                }
            }
            catch (HttpOperationException er)
            {
                new ErrorDialog(er.Response.ReasonPhrase, er.Response.Content).ShowDialog();
                return;
            }

            GroupUpdated?.Invoke(group);
        }
コード例 #2
0
        // Entity updated observable
        public IObservable <GroupUpdatedEventArgs <T> > OnEntityUpdatedAsObservable <T>()
        {
            var entityUpdated = Observable.FromEvent <GroupUpdated, GroupUpdatedEventArgs <T> >(handler => {
                GroupUpdated entityRemovedHandler = (group, entity, index, previous, current) => {
                    if (previous is T)
                    {
                        var args      = new GroupUpdatedEventArgs <T>();
                        args.group    = group;
                        args.entity   = entity;
                        args.index    = index;
                        args.previous = (T)previous;
                        args.current  = (T)current;
                        handler(args);
                    }
                };
                return(entityRemovedHandler);
            },
                                                                                                entityUpdatedHandler => OnEntityUpdated += entityUpdatedHandler,
                                                                                                entityUpdatedHandler => OnEntityUpdated -= entityUpdatedHandler);

            return(entityUpdated);
        }