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); }
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); }
//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); }
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); }