public async Task AddPlayersFromFile(string fileText, ObservableCollection <UserPlanet> playersPlanets, DateTime fileCreationDate) { var planetLocalization = "0:0"; var isGalaxyAndSystemReaded = false; var positionLine = ""; var errorCount = 0; var stringReader = new StringReader(fileText); while (true) { _actualLine = stringReader.ReadLine(); if (_actualLine != null && _actualLine.Contains("System ") && !isGalaxyAndSystemReaded) { planetLocalization = await readPlanetLocalization(_actualLine); isGalaxyAndSystemReaded = true; var tempUserPlanet = new UserPlanet("temp", planetLocalization, fileCreationDate); await DeleteOldSolarSystems(tempUserPlanet, playersPlanets); } if (isGalaxyAndSystemReaded) { positionLine = GetLineWithPosition(stringReader, positionLine); } if (_startToReadUserData) { var userName = readUserName(_actualLine); var position = GetPositionFromLine(positionLine); var planetId = GetPlanetId(stringReader); var userPlanet = new UserPlanet(await userName, planetLocalization, position, fileCreationDate); userPlanet.PlanetId = planetId; lock (playersPlanets) { playersPlanets.Add(userPlanet); } _startToReadUserData = false; } if (_actualLine == null) { errorCount++; if (errorCount > 10) { break; } } } }
private async Task DeleteOldSolarSystems(UserPlanet tempUserPlanet, ObservableCollection <UserPlanet> playersPlanets) { lock (playersPlanets) { var solarSystemsToRemove = playersPlanets.Where(x => x.Galaxy == tempUserPlanet.Galaxy && x.SolarSystem == tempUserPlanet.SolarSystem).ToList(); foreach (var item in solarSystemsToRemove) { playersPlanets.Remove(item); } } }
private DateTime GetSolarSystemCreationDate(UserPlanet tempUserPlanet, ObservableCollection <UserPlanet> playersPlanets) { try { var solarSystemCreationDate = playersPlanets.First(x => x.Galaxy == tempUserPlanet.Galaxy && x.SolarSystem == tempUserPlanet.SolarSystem).CreationDate; return(solarSystemCreationDate); } catch (ArgumentNullException) { return(new DateTime(5, 1, 1, 1, 1, 1)); } catch (InvalidOperationException) { return(new DateTime(5, 1, 1, 1, 1, 1)); } }
public void SpyPlanet(UserPlanet userPlanet, PlanetType planetType) { var request = _requestConfigurator.Configure(RequestType.SpyPlanet); request.Resource = "https://uni2.sgame.pl/game.php?page=fleetAjax&ajax=1&mission=6&planetID=" + userPlanet.PlanetId; AddSpecialSpyParameters(request, userPlanet); var response = _client.Execute(request); SaveIntoLogFile(response.Content); if (IsSpyResponseCorrect(response)) { return; } throw new RestException("There was an error during Spy request"); }
public void SpyPlanet(UserPlanet userPlanet, PlanetType planetType) { var request = _requestConfigurator.Configure(RequestType.SpyPlanet); request.AddParameter("mission", "6"); request.AddParameter("galaxy", userPlanet.Galaxy.ToString()); request.AddParameter("system", userPlanet.SolarSystem.ToString()); request.AddParameter("planet", userPlanet.Position.ToString()); int planetTypeNumber = (int)planetType; request.AddParameter("planettype", planetTypeNumber.ToString()); request.AddParameter("ships", "50"); var response = _client.Execute(request); SaveIntoLogFile(response.Content); if (IsSpyResponseCorrect(response) || (planetType == PlanetType.MOON)) { return; } throw new RestException("There was an error during Spy request"); }
public UserPlanetDetailedView(UserPlanet userPlanetData, IGameRestClient gameRestClient) { DataContext = new UserPlanetDetailedViewModel(gameRestClient); ((UserPlanetDetailedViewModel)DataContext).UserPlanetData = userPlanetData; InitializeComponent(); }
public void SpyPlanet(UserPlanet userPlanet, UserPlanet planetType) { throw new NotImplementedException(); }
private void AddSpecialSpyParameters(RestRequest request, UserPlanet userPlanet) { request.AddHeader("path", "/game.php?page=fleetAjax&ajax=1&mission=6&planetID=" + userPlanet.PlanetId); request.AddQueryParameter("PlanetId", userPlanet.PlanetId.ToString()); }