Exemplo n.º 1
0
        private static void LoadCache()
        {
            CacheData cacheData = new CacheData();
            CacheNews newsData = new CacheNews();

            try
            {
                var launchDataString = DependencyService.Get<IStoreCache>().LoadCache(CacheType.LaunchData);
                cacheData = launchDataString.ConvertToObject<CacheData>();
            }
            catch (Exception)
            {
                cacheData.NextLaunch = new LaunchData {CacheTimeOut = DateTime.Now};
                cacheData.CacheRockets = new List<CacheRocket>();
                cacheData.LaunchRangeList = new LaunchRangeList
                {
                    CacheTimeOut = DateTime.Now,
                    LaunchPairs = new List<LaunchData>()
                };
                cacheData.PeopleInSpace = new CachePeople()
                {
                    Astronouts = new List<Person>(),
                    CacheTimeOut = DateTime.Now
                };

            }

            try
            {
                var newsDataString = DependencyService.Get<IStoreCache>().LoadCache(CacheType.NewsData);
                newsData = newsDataString.ConvertToObject<CacheNews>();
            }
            catch (Exception)
            {
                newsData = new CacheNews { NewsFeeds = new List<NewsFeed>(), CacheTimeOut = DateTime.Now };
            }

            CacheManager.UpdateCache(cacheData, newsData);
        }
Exemplo n.º 2
0
 public static void UpdateCache(CacheData cacheData, CacheNews newsData)
 {
     NextLaunch = cacheData?.NextLaunch;
     CachedRockets = cacheData?.CacheRockets;
     CachedLaunches = cacheData?.LaunchRangeList;
     People = cacheData?.PeopleInSpace;
     CachedCacheNewsFeed = newsData;            
 }
Exemplo n.º 3
0
        public static void ClearCache()
        {
            NextLaunch = new LaunchData();
            CachedRockets = new List<CacheRocket>();
            CachedLaunches = new LaunchRangeList
            {
                CacheTimeOut = DateTime.Now.AddDays(-1),
                LaunchPairs = new List<LaunchData>()

            };
            CachedCacheNewsFeed = new CacheNews
            {
                NewsFeeds = new List<NewsFeed>(),
                CacheTimeOut = DateTime.Now
            };
            TrackedAgencies = new List<TrackedAgency>();
        }
Exemplo n.º 4
0
        public static async Task<List<NewsFeed>> TryGetNewsFeed()
        {
            if (CachedCacheNewsFeed?.NewsFeeds?.Count != 0 && CachedCacheNewsFeed?.CacheTimeOut > DateTime.Now)
                return CachedCacheNewsFeed.NewsFeeds;

            var newsFeed = new List<NewsFeed>();

            if (App.Settings.FollowSpaceNews)
            {
                var spaceNews = await ApiManager.GetNewsFromSpaceNews();
                newsFeed = newsFeed.Concat(spaceNews).Distinct().DistinctBy(x => x.Title).ToList();
            }
            if (App.Settings.FollowSpaceFlightNow)
            {
                var spaceFlightNow = await ApiManager.GetNewsFromSpaceFlightNow();
                newsFeed = newsFeed.Concat(spaceFlightNow).DistinctBy(x => x.Title).ToList();
            }
            if (App.Settings.FollowNasaSpaceFlight)
            {
                var nasaSpaceFlight = await ApiManager.GetNewsFromNasaSpaceFlight();
                newsFeed = newsFeed.Concat(nasaSpaceFlight).DistinctBy(x => x.Title).ToList();
            }

            if (CachedCacheNewsFeed?.NewsFeeds == null || CachedCacheNewsFeed?.NewsFeeds.Count == 0)
                CachedCacheNewsFeed = new CacheNews
                {
                    NewsFeeds = newsFeed.OrderByDescending(x => x.Published).Take(20).ToList(),
                    CacheTimeOut = DateTime.Now.AddHours(4)
                };

            return CachedCacheNewsFeed.NewsFeeds;
        }