コード例 #1
0
ファイル: FavoritesService.cs プロジェクト: pingzing/trippit
        private async Task <List <IFavorite> > DeserializeFavoritesFile()
        {
            await Initialization;

            var settings = new JsonSerializerSettings {
                TypeNameHandling = TypeNameHandling.Objects
            };

            try
            {
                using (Stream inStream = await _favoritesFile.OpenStreamForReadAsync())
                    using (var gzip = new GZipStream(inStream, CompressionMode.Decompress))
                    {
                        return(gzip.DeseriaizeJsonFromStream <List <IFavorite> >(settings));
                    }
            }
            catch (IOException ex)
            {
                //todo: Log me
                System.Diagnostics.Debug.WriteLine($"Could not deserialize favorites: {ex}: {ex.Message}");
                return(null);
            }
        }
コード例 #2
0
        public override async Task OnNavigatedToAsync(object parameter, NavigationMode mode, IDictionary <string, object> suspensionState)
        {
            BootStrapper.BackRequested += BootStrapper_BackRequested;
            if (suspensionState.ContainsKey(SuspensionKeys.TripResults_HasSavedState) &&
                (bool)suspensionState[SuspensionKeys.TripResults_HasSavedState])
            {
                IStorageFile tripResultCacheFile = await _fileService.GetTempFileAsync(
                    SuspensionKeys.TripResults_HasSavedState, CreationCollisionOption.OpenIfExists);

                using (Stream fileInStream = await tripResultCacheFile.OpenStreamForReadAsync())
                    using (var gzip = new GZipStream(fileInStream, CompressionMode.Decompress))
                    {
                        TripItinerary[] tripsArray = gzip.DeseriaizeJsonFromStream <TripItinerary[]>();
                        TripResults = new ObservableCollection <TripItinerary>(tripsArray);
                    }

                FromName = (string)suspensionState[SuspensionKeys.TripResults_FromName];
                ToName   = (string)suspensionState[SuspensionKeys.TripResults_ToName];

                suspensionState.Remove(SuspensionKeys.TripResults_HasSavedState);
            }
            await Task.CompletedTask;
        }