Example #1
0
        public async Task <List <OfferDetail> > GetOfferDetails()
        {
            if (_globalSettingsService.UseCache)
            {
                // get OfferDetails from cache if no internet
                if (Connectivity.NetworkAccess == NetworkAccess.None || Connectivity.NetworkAccess == NetworkAccess.ConstrainedInternet)
                {
                    return(Barrel.Current.Get <List <OfferDetail> >(key: _baseUrl));
                }


                // get OfferDetails from cache if cache is not expire
                if (!Barrel.Current.IsExpired(key: _baseUrl))
                {
                    return(Barrel.Current.Get <List <OfferDetail> >(key: _baseUrl));
                }
            }

            // get OfferDetails form api
            try
            {
                serverApiService = RestService.For <IServerApiService>(_baseUrl);
                var response = await serverApiService.GetJobInfo();

                Barrel.Current.Add(key: _baseUrl, data: response, expireIn: TimeSpan.FromMinutes(_globalSettingsService.CacheExpiry));
                return(response);
            }
            catch (Exception)
            {
                return(null);

                throw;
            }
        }