Ejemplo n.º 1
0
        public async Task <XUser> GetCurrentUser()
        {
            HttpClient client = GetClient();

            var request        = new HttpRequestMessage();
            Uri siteUrl        = new Uri(SiteUrl);
            Uri getCurrentUser = new Uri(siteUrl, "/_api/Web/CurrentUser");

            request.Method     = HttpMethod.Get;
            request.RequestUri = getCurrentUser;
            XUser user = 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;
                user         = XUser.ParseUser(resPonseData);
                user.Context = this;
                return(user);
            });

            return(user);
        }
Ejemplo n.º 2
0
        public static List <XUser> ParseUsers(string resPonseData)
        {
            XElement x = XElement.Parse(resPonseData);

            x = XmlUtil.RemoveAllNamespaces(x);

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

            List <XUser> users = new List <XUser>();

            foreach (var entry in entries)
            {
                XUser user = new XUser
                {
                    Title                   = entry.XPathSelectElement("content/properties/Title").Value,
                    Id                      = int.Parse(entry.XPathSelectElement("content/properties/Id").Value),
                    LoginName               = entry.XPathSelectElement("content/properties/LoginName").Value,
                    PrincipalType           = entry.XPathSelectElement("content/properties/PrincipalType").Value,
                    Email                   = entry.XPathSelectElement("content/properties/Email").Value,
                    IsShareByEmailGuestUser = bool.Parse(entry.XPathSelectElement("content/properties/IsShareByEmailGuestUser").Value),
                    IsSiteAdmin             = bool.Parse(entry.XPathSelectElement("content/properties/IsSiteAdmin").Value),
                };
                users.Add(user);
            }

            return(users);
        }
Ejemplo n.º 3
0
        //TODO: get Owners
        // title="Owner" href="Web/SiteGroups/GetById(7)/Owner" />
        //TODO: get Users
        // title="Users" href="Web/SiteGroups/GetById(7)/Users" />


        public async Task <List <XUser> > GetUsers()
        {
            HttpClient client = Context.GetClient();

            var request          = new HttpRequestMessage();
            Uri siteUrl          = new Uri(Context.SiteUrl);
            Uri getGroupUsersUrl = new Uri(siteUrl, string.Format("/_api/Web/SiteGroups/GetById({0})/Users", Id));

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

            List <XUser> users = 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;
                users = XUser.ParseUsers(resPonseData);
                return(users);
            });

            return(users);
        }
Ejemplo n.º 4
0
        public static XUser ParseUser(string resPonseData)
        {
            XElement x = XElement.Parse(resPonseData);

            x = XmlUtil.RemoveAllNamespaces(x);
            XUser user = new XUser
            {
                Title                   = x.XPathSelectElement("/content/properties/Title").Value,
                Id                      = int.Parse(x.XPathSelectElement("/content/properties/Id").Value),
                LoginName               = x.XPathSelectElement("/content/properties/LoginName").Value,
                PrincipalType           = x.XPathSelectElement("/content/properties/PrincipalType").Value,
                Email                   = x.XPathSelectElement("/content/properties/Email").Value,
                IsShareByEmailGuestUser = bool.Parse(x.XPathSelectElement("/content/properties/IsShareByEmailGuestUser").Value),
                IsSiteAdmin             = bool.Parse(x.XPathSelectElement("/content/properties/IsSiteAdmin").Value),
            };

            return(user);
        }