Ejemplo n.º 1
0
        public async Task <List <CategoryDetailsModel> > GetCategoryDetailsAsync(bool bForece = false)
        {
            DateTime dateTime = IsolatedStorageHelper.GetDateTime("LastTimeRefreshOfCategory", DateTime.Now.AddHours(-25));
            var      diff     = DateTime.Now - dateTime;

            if (diff.TotalHours >= 24 || ListOfCategories.Count == 0 || bForece)
            {
                var categories = await _theHinduClient.GetCategoryDetailsAsync();

                if (categories != null)
                {
                    //First remove the depricated categories.
                    var categoriesFromDB = await DatabaseOperations.GetInstance().GetCategoriesAsync();

                    if (categoriesFromDB != null && categoriesFromDB.Count > 0)
                    {
                        foreach (var category in categoriesFromDB)
                        {
                            if (categories.Find(o => o.CategoryName.ToLower() == category.CategoryName.ToLower()) == null)
                            {
                                await DatabaseOperations.GetInstance().DeleteCategoryAsync(category.CategoryName);
                            }
                        }
                    }

                    //update or insert the new categories.
                    foreach (var category in categories)
                    {
                        await DatabaseOperations.GetInstance().UpdateCategoryAsync(category);
                    }
                    IsolatedStorageHelper.SaveSettingValueImmediately("LastTimeRefreshOfCategory", DateTime.Now);
                }
                await LoadCategoryDetailsAsync();
            }
            else if (ListOfCategories == null || ListOfCategories.Count > 0)
            {
                await LoadCategoryDetailsAsync();
            }
            return(ListOfCategories);
        }
Ejemplo n.º 2
0
 protected override async void OnInvoke(ScheduledTask task)
 {
     try
     {
         _lastCheck = IsolatedStorageHelper.GetDateTime(LastUpdateVerificationPropertyName, new DateTime(1, 1, 1));
         if (_lastCheck != null)
         {
             if (_lastCheck.Year != 1)
             {
                 if (IsUpdateRequired())
                 {
                     await UpdateAsync();
                 }
                 else
                 {
                     NotifyComplete();
                 }
             }
             else
             {
                 SaveSettingValueImmediately(LastUpdateVerificationPropertyName, DateTime.Now);
                 NotifyComplete();
             }
         }
         else
         {
             SaveSettingValueImmediately(LastUpdateVerificationPropertyName, DateTime.Now);
             NotifyComplete();
         }
     }
     catch (Exception exception)
     {
         if (Debugger.IsAttached)
         {
             Debug.WriteLine("ScheduledAgent:" + exception);
         }
         NotifyComplete();
     }
 }