private async Task BuildWebIdCache()
        {
            Dictionary <StreamsEnum, string> webIds = _sessionContext.UserContext.WebIDs;

            if (webIds == null)
            {
                string webID = await GetServerWebID();

                string nameFilter = string.Format("{0}.MobileData*", _sessionContext.UserContext.Username);

                HttpResponseMessage responseGetPoints = await _piWebClient.GetPoints(webID, nameFilter);

                dynamic valueResult;
                if (responseGetPoints.StatusCode == HttpStatusCode.Ok)
                {
                    using (StreamReader sr = new StreamReader((await responseGetPoints.Content.ReadAsInputStreamAsync()).AsStreamForRead()))
                    {
                        using (JsonTextReader jReader = new JsonTextReader(sr))
                        {
                            valueResult = JObject.ReadFrom(jReader);
                        }
                    }

                    IList <PointDTO> points = valueResult["Items"].ToObject <List <PointDTO> >();

                    ApplicationDataCompositeValue webIdsStored = new ApplicationDataCompositeValue();

                    foreach (var pt in points)
                    {
                        webIdsStored.Add(pt.Name, pt.WebId);
                    }

                    AppSettingsManager.Instance.LocalSettings.Containers["UserSettings"].AddOrUpdateValue("WebIds", webIdsStored);
                }
            }
        }