Exemplo n.º 1
0
        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;
        }
Exemplo n.º 3
0
        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());
        }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 5
0
        public static bool IsAddItem(PackageData packageData)
        {
            if (packageData == null)
            {
                return(false);
            }

            return(packageData.TrackingNumber == GetAddItem().TrackingNumber);
        }
Exemplo n.º 6
0
        public bool PackageNeedsRefreshed(PackageData packageData)
        {
            if (packageData == null)
            {
                return(true);
            }

            if (packageData.LastClientRefresh == null)
            {
                return(true);
            }

            return(packageData.LastClientRefresh < DateTime.UtcNow.Subtract(_clientCacheExpiration));
        }
Exemplo n.º 7
0
        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));
        }
Exemplo n.º 8
0
        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));
        }
Exemplo n.º 9
0
        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);
        }
Exemplo n.º 10
0
        public bool PackageNeedsRefreshed(PackageData packageData)
        {
            if (packageData == null)
                return true;

            if (packageData.LastClientRefresh == null)
                return true;

            return packageData.LastClientRefresh < DateTime.UtcNow.Subtract(_clientCacheExpiration);
        }
Exemplo n.º 11
0
        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);
        }
Exemplo n.º 12
0
        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);
        }