public async Task <MembersReport> RetrieveClubMembers() { var storageFile = await ApplicationData.Current.LocalFolder.CreateFileAsync("members.txt", CreationCollisionOption.OpenIfExists); var json = await FileIO.ReadTextAsync(storageFile); var members = JsonConvert.DeserializeObject <List <Member> >(json); var membersReport = new MembersReport(true, members); return(membersReport); }
public async Task <MembersReport> RefreshClubMembers() { MembersReport membersReport; var responseMessage = await ExecuteMembersRequest(); var xml = await responseMessage.Content.ReadAsStringAsync(); if (responseMessage.StatusCode == HttpStatusCode.InternalServerError && xml.Contains("InvalidSessionFault")) { var report = await _authenticationService.LoginWithStoredCredentials(); if (report.Successful) { await RefreshClubMembers(); } else { membersReport = new MembersReport(false, null) { Error = report.Error }; return(membersReport); } } XmlDocument doc = new XmlDocument(); doc.LoadXml(xml); var members = new List <Member>(); var nodeList = doc.GetElementsByTagName("b:MemberIdentification"); foreach (var memberNode in nodeList) { var node = memberNode.ChildNodes.FirstOrDefault(c => c.NodeName == "Name"); members.Add(new Member(node.InnerText)); } var storageFile = await ApplicationData.Current.LocalFolder.CreateFileAsync("members.txt", CreationCollisionOption.OpenIfExists); await FileIO.WriteTextAsync(storageFile, JsonConvert.SerializeObject(members)); membersReport = new MembersReport(true, members); return(membersReport); }