예제 #1
0
        private async Task <Bitmap> GetImage(String url)
        {
            Bitmap bitmap = CachingUtil.GetBitmapFromCacheByUrl(url, Context);

            if (bitmap != null)
            {
                return(bitmap);
            }
            try {
                var request = WebRequest.Create(url);
                var resp    = await request.GetResponseAsync()
                              .ConfigureAwait(continueOnCapturedContext: false);

                var stream = resp.GetResponseStream();

                bitmap = BitmapFactory.DecodeStream(stream);
                bitmap = ScaleImage(bitmap, Resources.DisplayMetrics);
                bitmap = CropImage(bitmap);
                bitmap = MakeImageRound(bitmap);

                CachingUtil.PutBitmapToCacheByUrl(url, bitmap, Context);
                return(bitmap);
            } catch (Exception ex) {
                var log = ServiceContainer.Resolve <ILogger> ();
                log.Debug(LogTag, ex, "Failed to get user profile image.");
                return(null);
            }
        }
예제 #2
0
    public async Task UpdateCacheAsync()
    {
        var urlApi = "https://coronavirus-tracker-api.herokuapp.com/all";

        CachingUtil.ClearCacheOlderThan("covid-all", 1);

        if (!CacheFilename.IsFileCacheExist())
        {
            Log.Information("Getting information from {UrlApi}", urlApi);
            var covidAll = await urlApi.GetJsonAsync <CovidAll>();

            await covidAll.WriteCacheAsync(CacheFilename);
        }
        else
        {
            Log.Information("Covid Cache has updated.");
        }
    }