/// <summary>
        /// Lists all members for a group
        /// </summary>
        public static void ListGroupMembers(ListGroupMembersRequest request, Action <ListGroupMembersResponse> resultCallback, Action <PlayFabError> errorCallback, object customData = null, Dictionary <string, string> extraHeaders = null)
        {
            var context = (request == null ? null : request.AuthenticationContext) ?? PlayFabSettings.staticPlayer;


            PlayFabHttp.MakeApiCall("/Group/ListGroupMembers", request, AuthType.EntityToken, resultCallback, errorCallback, customData, extraHeaders, context);
        }
예제 #2
0
        public void ListGroupMembers(string groupId, Action <ListGroupMembersResponse> callback)
        {
            var request = new ListGroupMembersRequest {
                Group = EntityKeyMaker(groupId)
            };

            PlayFabGroupsAPI.ListGroupMembers(request, callback, (PlayFabError e) => callback(null));
        }
        /// <summary>
        /// Lists all members for a group
        /// </summary>
        public void ListGroupMembers(ListGroupMembersRequest request, Action <ListGroupMembersResponse> resultCallback, Action <PlayFabError> errorCallback, object customData = null, Dictionary <string, string> extraHeaders = null)
        {
            var context      = (request == null ? null : request.AuthenticationContext) ?? authenticationContext;
            var callSettings = apiSettings ?? PlayFabSettings.staticSettings;

            if (!context.IsEntityLoggedIn())
            {
                throw new PlayFabException(PlayFabExceptionCode.NotLoggedIn, "Must be logged in to call this method");
            }
            PlayFabHttp.MakeApiCall("/Group/ListGroupMembers", request, AuthType.EntityToken, resultCallback, errorCallback, customData, extraHeaders, context, callSettings, this);
        }
예제 #4
0
        /// <summary>
        /// Lists all members for a group
        /// </summary>
        /// <param name="Group">ID of the group to list the members and roles for (Required)</param>
        public static Task <ListGroupMembersResponse> ListGroupMembers(EntityKey Group,
                                                                       PlayFabAuthenticationContext customAuthContext = null, object customData = null, Dictionary <string, string> extraHeaders = null)
        {
            ListGroupMembersRequest request = new ListGroupMembersRequest()
            {
                Group = Group,
            };

            var context = GetContext(customAuthContext);

            return(PlayFabHttp.MakeApiCallAsync <ListGroupMembersResponse>("/Group/ListGroupMembers", request,
                                                                           AuthType.EntityToken,
                                                                           customData, extraHeaders, context));
        }
        /// <summary>Snippet for ListGroupMembersAsync</summary>
        public async Task ListGroupMembersAsync_RequestObject()
        {
            // Snippet: ListGroupMembersAsync(ListGroupMembersRequest,CallSettings)
            // Create client
            GroupServiceClient groupServiceClient = await GroupServiceClient.CreateAsync();

            // Initialize request argument(s)
            ListGroupMembersRequest request = new ListGroupMembersRequest
            {
                GroupName = new GroupName("[PROJECT]", "[GROUP]"),
            };
            // Make the request
            PagedAsyncEnumerable <ListGroupMembersResponse, MonitoredResource> response =
                groupServiceClient.ListGroupMembersAsync(request);

            // Iterate over all response items, lazily performing RPCs as required
            await response.ForEachAsync((MonitoredResource item) =>
            {
                // Do something with each item
                Console.WriteLine(item);
            });

            // Or iterate over pages (of server-defined size), performing one RPC per page
            await response.AsRawResponses().ForEachAsync((ListGroupMembersResponse page) =>
            {
                // Do something with each page of items
                Console.WriteLine("A page of results:");
                foreach (MonitoredResource item in page)
                {
                    Console.WriteLine(item);
                }
            });

            // Or retrieve a single page of known size (unless it's the final page), performing as many RPCs as required
            int pageSize = 10;
            Page <MonitoredResource> singlePage = await response.ReadPageAsync(pageSize);

            // Do something with the page of items
            Console.WriteLine($"A page of {pageSize} results (unless it's the final page):");
            foreach (MonitoredResource item in singlePage)
            {
                Console.WriteLine(item);
            }
            // Store the pageToken, for when the next page is required.
            string nextPageToken = singlePage.NextPageToken;
            // End snippet
        }
        /// <summary>
        /// Lists all members for a group
        /// </summary>
        public static async Task <PlayFabResult <ListGroupMembersResponse> > ListGroupMembersAsync(ListGroupMembersRequest request, object customData = null, Dictionary <string, string> extraHeaders = null)
        {
            if ((request?.AuthenticationContext?.EntityToken ?? PlayFabSettings.staticPlayer.EntityToken) == null)
            {
                throw new PlayFabException(PlayFabExceptionCode.EntityTokenNotSet, "Must call GetEntityToken before calling this method");
            }


            var httpResult = await PlayFabHttp.DoPost("/Group/ListGroupMembers", request, "X-EntityToken", PlayFabSettings.staticPlayer.EntityToken, extraHeaders);

            if (httpResult is PlayFabError)
            {
                var error = (PlayFabError)httpResult;
                PlayFabSettings.GlobalErrorHandler?.Invoke(error);
                return(new PlayFabResult <ListGroupMembersResponse> {
                    Error = error, CustomData = customData
                });
            }

            var resultRawJson = (string)httpResult;
            var resultData    = PluginManager.GetPlugin <ISerializerPlugin>(PluginContract.PlayFab_Serializer).DeserializeObject <PlayFabJsonSuccess <ListGroupMembersResponse> >(resultRawJson);
            var result        = resultData.data;

            return(new PlayFabResult <ListGroupMembersResponse> {
                Result = result, CustomData = customData
            });
        }
예제 #7
0
 /// <summary>
 /// Lists all members for a group
 /// </summary>
 public static void ListGroupMembers(ListGroupMembersRequest request, Action <ListGroupMembersResponse> resultCallback, Action <PlayFabError> errorCallback, object customData = null, Dictionary <string, string> extraHeaders = null)
 {
     PlayFabHttp.MakeApiCall("/Group/ListGroupMembers", request, AuthType.EntityToken, resultCallback, errorCallback, customData, extraHeaders);
 }
예제 #8
0
        private static async Task SeafClientDemo(Uri host, string user, char[] pw)
        {
            try
            {
                // if the seafile server uses a self-signed certificate we accept it
                // for demonstration purposes
                ServicePointManager.ServerCertificateValidationCallback = (s, cert, chain, errors) => true;

                // try to connect to the seafile server using the given credentials
                Console.Write("Connecting...");
                var session = await SeafSession.Establish(host, user, pw);

                Console.WriteLine("OK");
                Console.WriteLine();

                // ping the server
                Console.Write("Pinging the server...");
                if (await session.Ping())
                {
                    Console.WriteLine("OK");
                }
                else
                {
                    Console.WriteLine("Failed");
                }

                // retrieve user account info
                var info = await session.CheckAccountInfo();

                Console.WriteLine("Account info: ");
                Console.WriteLine("User name: " + info.Name);
                Console.WriteLine("Space used: " + MiscUtils.FormatByteSize(info.Usage));
                Console.WriteLine("Space total: " +
                                  (info.HasUnlimitedSpace ? "unlimited" : MiscUtils.FormatByteSize(info.Quota)));
                Console.WriteLine("");

                // create a test library
                // Console.Write("Creating library...");
                // var newLib = await session.CreateLibrary("TestLib", "123");
                // Console.WriteLine("OK");

                // groups
                Console.WriteLine("Groups:");
                var groupList = await session.ListGroups();

                foreach (var g in groupList)
                {
                    Console.WriteLine(String.Format("{0:d} {1}", g.Id, g.Name));
                }

                if (groupList.Count > 0)
                {
                    var group = groupList.First();

                    //await session.AddGroupMember(group, "*****@*****.**");
                    //Console.WriteLine("added user to group");

                    var request = new ListGroupMembersRequest(session.AuthToken, group.Id, 120);
                    var members = await session.SendRequest(request);

                    Console.WriteLine("Group members:");
                    foreach (var m in members)
                    {
                        Console.WriteLine("  " + m.Name + " " + m.Email);
                    }

                    //await session.RemoveGroupMember(group, "*****@*****.**");
                    //Console.WriteLine("removed user from group");

                    //await session.DeleteGroup(group);
                    //Console.WriteLine("deleted group: " + group.Name);
                    //await session.RenameGroup(group, "changed name");
                    //Console.WriteLine("renamed group");
                }
                else
                {
                    var group = await session.AddGroup("new group");

                    Console.WriteLine("added group: " + group.Id + " - " + group.Name);
                }

                // default library
                var defLib = await session.GetDefaultLibrary();

                Console.WriteLine("Default library: " + defLib.Name);


                // retrieve user's libraries & shared libraries
                var libs = await session.ListLibraries();

                libs = libs.Union(await session.ListSharedLibraries()).ToList();
                Console.WriteLine("Libraries:");

                IList <string[]> lines = new List <string[]>();
                lines.Add(new[] { "Modified", "Permission", "Name", "Owner" });

                foreach (var lib in libs)
                {
                    var permission = lib.Permission == SeafPermission.ReadOnly ? "r" : "rw";
                    lines.Add(new[] { lib.Timestamp.ToString(), permission, lib.Name, lib.Owner });
                }
                Console.WriteLine(MiscUtils.PadElementsInLines(lines, 2));

                // list directories recursively
                var listDirsRequest = new ListDirectoryEntriesRequest(session.AuthToken, defLib.Id, "/", true);
                var dirs            = await session.SendRequest(listDirsRequest);

                foreach (var d in dirs)
                {
                    Console.WriteLine(d.Path);
                }
            }
            catch (AggregateException ex)
            {
                if (ex.InnerException != null)
                {
                    throw ex.InnerException;
                }
            }
            catch (SeafException ex)
            {
                Console.WriteLine("Failed");
                Console.WriteLine("Request failed: " + ex.Message);
            }
        }