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