private async void LoadPackages() { var packageRefreshTasks = new List <Task>(); //Load tracking numbers var trackingNumbers = ApplicationData.Current.RoamingSettings.Values[TrackingNumbersRoamingKey] as string[]; if (trackingNumbers != null) { foreach (var trackingNumber in trackingNumbers) { if (trackingNumber == AddNewPackageTemplateSelector.GetAddItem().TrackingNumber) { continue; } if (Packages.Count(x => x.TrackingNumber == trackingNumber) > 0) { continue; } var package = new PackageData { TrackingNumber = trackingNumber }; Packages.Add(package); packageRefreshTasks.Add(RefreshPackage(package)); } } Packages.Add(AddNewPackageTemplateSelector.GetAddItem()); await Task.WhenAll(packageRefreshTasks.ToArray()); }
public static bool IsAddItem(PackageData packageData) { if (packageData == null) return false; return packageData.TrackingNumber == GetAddItem().TrackingNumber; }
private async void LoadPackages() { var packageRefreshTasks = new List<Task>(); //Load tracking numbers var trackingNumbers = ApplicationData.Current.RoamingSettings.Values[TrackingNumbersRoamingKey] as string[]; if (trackingNumbers != null) { foreach (var trackingNumber in trackingNumbers) { if (trackingNumber == AddNewPackageTemplateSelector.GetAddItem().TrackingNumber) continue; if (Packages.Count(x => x.TrackingNumber == trackingNumber) > 0) continue; var package = new PackageData {TrackingNumber = trackingNumber}; Packages.Add(package); packageRefreshTasks.Add(RefreshPackage(package)); } } Packages.Add(AddNewPackageTemplateSelector.GetAddItem()); await Task.WhenAll(packageRefreshTasks.ToArray()); }
private async Task RefreshPackage(PackageData packageData) { packageData.Refreshing = true; string json; using (var http = new HttpClient()) { //json = await http.GetStringAsync("http://localhost/SimpleTracking.Web/track/sim1.json"); //json = await http.GetStringAsync("http://localhost/SimpleTracking.Web/track/1Z20377A0297737558.json"); json = PackagesDesignerData.GetEmbeddedJsonSample("RealUpsExample"); await Task.Delay(TimeSpan.FromSeconds(3)); } var trackingNumber = packageData.TrackingNumber; JsonConvert.PopulateObject(json, packageData, new JsonSerializerSettings()); if (trackingNumber != null) { packageData.TrackingNumber = trackingNumber; } packageData.LastClientRefresh = DateTime.UtcNow; packageData.Refreshing = false; //_packageCache.CacheTrackingData(packageData); }
public static bool IsAddItem(PackageData packageData) { if (packageData == null) { return(false); } return(packageData.TrackingNumber == GetAddItem().TrackingNumber); }
public bool PackageNeedsRefreshed(PackageData packageData) { if (packageData == null) { return(true); } if (packageData.LastClientRefresh == null) { return(true); } return(packageData.LastClientRefresh < DateTime.UtcNow.Subtract(_clientCacheExpiration)); }
public void CacheTrackingData(PackageData packageData) { //The tracking number should have been added, but confirm AddTrackingNumber(packageData.TrackingNumber); return; //var local = ApplicationData.Current.LocalSettings; //var localContainer = local.CreateContainer(TrackingDataCacheContainerName, ApplicationDataCreateDisposition.Always); //if (localContainer.Values.ContainsKey(packageData.TrackingNumber)) // localContainer.Values[packageData.TrackingNumber] = _jsonSerializer.Serialize(packageData); //else // localContainer.Values.Add(packageData.TrackingNumber, _jsonSerializer.Serialize(packageData)); }
private async void TrackingNumberEntered(object sender, RoutedEventArgs e) { LoginDialog.IsOpen = false; var trackingNumber = NewTrackingNumber.Text.Trim(); var package = new PackageData { TrackingNumber = trackingNumber }; //Insert the package before the "add" item Packages.Insert(Packages.Count - 1, package); //Remember the tracking number for app restarts ApplicationData.Current.RoamingSettings.Values[TrackingNumbersRoamingKey] = Packages.Where(x => !AddNewPackageTemplateSelector.IsAddItem(x)) .Select(x => x.TrackingNumber).ToArray(); await RefreshPackage(package); }
public bool PackageNeedsRefreshed(PackageData packageData) { if (packageData == null) return true; if (packageData.LastClientRefresh == null) return true; return packageData.LastClientRefresh < DateTime.UtcNow.Subtract(_clientCacheExpiration); }
private async Task RefreshPackage(PackageData packageData) { packageData.Refreshing = true; string json; using (var http = new HttpClient()) { //json = await http.GetStringAsync("http://localhost/SimpleTracking.Web/track/sim1.json"); //json = await http.GetStringAsync("http://localhost/SimpleTracking.Web/track/1Z20377A0297737558.json"); json = PackagesDesignerData.GetEmbeddedJsonSample("RealUpsExample"); await Task.Delay(TimeSpan.FromSeconds(3)); } var trackingNumber = packageData.TrackingNumber; JsonConvert.PopulateObject(json, packageData, new JsonSerializerSettings()); if (trackingNumber != null) packageData.TrackingNumber = trackingNumber; packageData.LastClientRefresh = DateTime.UtcNow; packageData.Refreshing = false; //_packageCache.CacheTrackingData(packageData); }
private async void TrackingNumberEntered(object sender, RoutedEventArgs e) { LoginDialog.IsOpen = false; var trackingNumber = NewTrackingNumber.Text.Trim(); var package = new PackageData {TrackingNumber = trackingNumber}; //Insert the package before the "add" item Packages.Insert(Packages.Count-1, package); //Remember the tracking number for app restarts ApplicationData.Current.RoamingSettings.Values[TrackingNumbersRoamingKey] = Packages.Where(x => !AddNewPackageTemplateSelector.IsAddItem(x)) .Select(x => x.TrackingNumber).ToArray(); await RefreshPackage(package); }