public async Task <bool> RestoreBackup() //Restore from RemoteRepository { HttpClient client = new HttpClient(); client.BaseAddress = new Uri("http://localhost:21094/api/"); client.DefaultRequestHeaders.Clear(); client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); var requestPlayers = await client.GetAsync("players"); if (!requestPlayers.IsSuccessStatusCode) { return(false); //Could not restore the backup } string serializedPlayers = await requestPlayers.Content.ReadAsStringAsync(); IEnumerable <Player> restoredPlayers = JsonConvert .DeserializeObject <IEnumerable <Player> >(serializedPlayers); var requestMatches = await client.GetAsync("matches"); if (!requestMatches.IsSuccessStatusCode) { return(false); //Could not restore the backup } string serializedMatches = await requestMatches.Content.ReadAsStringAsync(); IEnumerable <MatchModel> restoredMatches = JsonConvert .DeserializeObject <IEnumerable <MatchModel> >(serializedMatches); _matchService.RemoveAll(); _playerService.RemoveAll(); foreach (var item in restoredPlayers) { await _playerService.AddSync(item); } foreach (var item in restoredMatches) { await _matchService.AddSync(item.Id, item.Player1Id, item.Player2Id, item.WinnerId, item.MatchDate); } return(true); }
public async Task AddSync(Player player) { await _playerService.AddSync(player); }