コード例 #1
0
        public async Task <List <XGroup> > GetGroups()
        {
            HttpClient client = Context.GetClient();

            var request        = new HttpRequestMessage();
            Uri siteUrl        = new Uri(Context.SiteUrl);
            Uri getCurrentUser = new Uri(siteUrl, string.Format("/_api/Web/GetUserById({0})/Groups", Id));

            request.Method     = HttpMethod.Get;
            request.RequestUri = getCurrentUser;

            List <XGroup> groups = null;

            //TODO: add error handling
            await client.SendAsync(request).ContinueWith((taskwithmsg) =>
            {
                var response = taskwithmsg.Result;

                var responseContentTask = response.Content.ReadAsStringAsync();
                responseContentTask.Wait();
                string resPonseData = responseContentTask.Result;
                groups = XGroup.ParseGroups(resPonseData);
                groups.ForEach(x => x.Context = Context);
                return(groups);
            });

            return(groups);
        }
コード例 #2
0
ファイル: XGroup.cs プロジェクト: zeeshan4119/XSOM
        public static List <XGroup> ParseGroups(string resPonseData)
        {
            XElement x = XElement.Parse(resPonseData);

            x = XmlUtil.RemoveAllNamespaces(x);

            var entries = x.Descendants("entry");

            List <XGroup> groups = new List <XGroup>();

            foreach (var entry in entries)
            {
                XGroup group = new XGroup
                {
                    Title         = entry.XPathSelectElement("content/properties/Title").Value,
                    Id            = int.Parse(entry.XPathSelectElement("content/properties/Id").Value),
                    LoginName     = entry.XPathSelectElement("content/properties/LoginName").Value,
                    PrincipalType = int.Parse(entry.XPathSelectElement("content/properties/PrincipalType").Value),
                    AllowMembersEditMembership   = bool.Parse(entry.XPathSelectElement("content/properties/AllowMembersEditMembership").Value),
                    AllowRequestToJoinLeave      = bool.Parse(entry.XPathSelectElement("content/properties/AllowRequestToJoinLeave").Value),
                    AutoAcceptRequestToJoinLeave = bool.Parse(entry.XPathSelectElement("content/properties/AutoAcceptRequestToJoinLeave").Value),
                    Description = entry.XPathSelectElement("content/properties/Description").Value,
                    OnlyAllowMembersViewMembership = bool.Parse(entry.XPathSelectElement("content/properties/OnlyAllowMembersViewMembership").Value),
                    OwnerTitle = entry.XPathSelectElement("content/properties/OwnerTitle").Value
                };
                groups.Add(group);
            }

            return(groups);
        }