public static async void AutoRefresh() { IsUpdate = false; var startTimeSpan = TimeSpan.Zero; var periodTimeSpan = TimeSpan.FromMinutes(10); AutoRefreshTimer = new Timer(async(e) => { var newData = await GetDetailsAsync(); if (Details == null) { Details = newData; } newData.Reverse(); foreach (var tmp in newData) { if (Details.All(p => p.Stat.TimeInfo != tmp.Stat.TimeInfo)) { Details.Insert(0, tmp); IsUpdate = true; } } var tmpStats = new Stats(await GetStatAsync()); if (Stats == null) { var client = new RestClient("https://tgcovidinfo.firebaseio.com/Stats.json"); client.Timeout = -1; var request = new RestRequest(Method.PATCH); request.AddHeader("Content-Type", "application/json"); request.AddParameter("application/json", JsonConvert.SerializeObject(Stats), ParameterType.RequestBody); await client.ExecuteAsync(request); } else if (Stats.TimeInfo != tmpStats.TimeInfo) { var client = new RestClient("https://tgcovidinfo.firebaseio.com/Stats.json"); client.Timeout = -1; var request = new RestRequest(Method.PATCH); request.AddHeader("Content-Type", "application/json"); request.AddParameter("application/json", JsonConvert.SerializeObject(Stats), ParameterType.RequestBody); await client.ExecuteAsync(request); } if (IsUpdate) { var client = new RestClient("https://tgcovidinfo.firebaseio.com/Stats.json"); client.Timeout = -1; var request = new RestRequest(Method.PATCH); request.AddHeader("Content-Type", "application/json"); request.AddParameter("application/json", JsonConvert.SerializeObject(Details), ParameterType.RequestBody); await client.ExecuteAsync(request); } }, null, startTimeSpan, periodTimeSpan); }