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