Пример #1
0
        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;
                    }
                }
            }
        }
Пример #2
0
        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);
                }
            }
        }
Пример #3
0
 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));
     }
 }
Пример #4
0
        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");
        }
Пример #5
0
        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();
 }
Пример #7
0
 public void SpyPlanet(UserPlanet userPlanet, UserPlanet planetType)
 {
     throw new NotImplementedException();
 }
Пример #8
0
        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());
        }