예제 #1
0
        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);
        }
예제 #2
0
 public async Task AddSync(Player player)
 {
     await _playerService.AddSync(player);
 }