private async Task CreateAccountAsync()
        {
            using (var client = new HttpClient())
            {
                var baseUri = new Uri("http://robobatapp.azurewebsites.net/api/Users/create");

                client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

                var theContent = new StringContent("{\"Username\":\"" + _etUsername.Text
                    + "\", \"Password\":\"" + _etPassword.Text + "\"}",
                    Encoding.UTF8, "application/json");

                var result = await client.PostAsync(baseUri, theContent);

                var contents = await result.Content.ReadAsStringAsync();

                //TODO: Error handling on wrong create account attempt
                //TODO: Need to pull all this out to be able to test

                var user = new LoggedInUser();

                var o = JObject.Parse(contents);

                user.Username = _etUsername.Text;
                user.Token = "" + o["token"];

                await BlobCache.UserAccount.InsertObject("loggedInUser", user);

                await UpdateCurrentUser();

                Console.WriteLine(contents);
            }
        }
        private async Task  LoginAsync()
        {
            //TODO pull out as helper method since this is correct and working.  Contents contains raw Json which can be parsed.
            using (var client = new HttpClient())
            {
                var baseUri = new Uri("http://robobatapp.azurewebsites.net/api/Users/login");

                client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

                StringContent theContent = new StringContent("{\"Username\":\"robo\", \"Password\":\"hello\"}", Encoding.UTF8, "application/json");

                var result = await client.PostAsync(baseUri, theContent);
                
                var contents = await result.Content.ReadAsStringAsync();

                LoggedInUser user = new LoggedInUser();

                JObject o = JObject.Parse(contents);

                user.Username = ""+o["user"];
                user.Token = "" + o["token"];

                
                user.Expiration = DateTime.Parse(""+o["Expiration"]);

                user.IsExpired = user.Expiration < DateTime.Now;

                await BlobCache.UserAccount.InsertObject("loggedInUser", user);

                await UpdateCurrentUser();

                Console.WriteLine("I reached here 1");
            }

            var myclient = new HttpClient();

            var validToken = "";

            var currentUser = await BlobCache.UserAccount.GetObject<LoggedInUser>("loggedInUser");
            if (currentUser?.Username != null)
            {
                //TODO Handle Expired Token
                validToken = currentUser.Token;
            }
            else
            {
                //TODO Handle intital signin
            }

            //try
            //{
            //    var response =
            //        await myclient.GetStringAsync("http://robobatapp.azurewebsites.net/api/tvshows?token=" + validToken);
            //    //response.EnsureSuccessStatusCode();

            //    //var result = response.Content.ReadAsStringAsync();
            //}
            //catch (Exception e)
            //{
            //    Console.WriteLine(e.Message);
            //}

            Console.WriteLine("I reached here 2");
        }