private void SetUrlData(String key, UrlData dataToSet) { lock (this.urls) { this.urls[key] = dataToSet; } }
// Update the stored target URL private void UpdateUrl(String url, String channelUri, String inputItemId, bool isPrimaryTile) { String itemId = isPrimaryTile && inputItemId == null ? MAIN_APP_TILE_KEY : inputItemId; bool shouldSerializeTileIds = TryGetUrlData(itemId) == null; UrlData storedData = new UrlData() { Url = url, ChannelUri = channelUri, IsAppId = isPrimaryTile, Renewed = DateTime.Now }; SetUrlData(itemId, storedData); using (MemoryStream stream = new MemoryStream()) { DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(UrlData)); serializer.WriteObject(stream, storedData); stream.Position = 0; using (StreamReader reader = new StreamReader(stream)) { ApplicationData.Current.LocalSettings.Values[itemId] = reader.ReadToEnd(); } } if (shouldSerializeTileIds) { SaveAppTileIds(); } }