public void retrieveFields()
        {
            CurrentResultDelegate currentResultDelegate = new CurrentResultDelegate(currentResult);
            FinalResultDelegate   finalResultDelegate   = new FinalResultDelegate(finalResult);

            PreferencesSettings settings = GlobalSettings.getSettings().curPreferencesSettings;

            List <string> name_substrings        = new List <string>();
            bool          empty_name             = globalFuncs.multiEntryTextBox(ref name_substrings, searchUI.name);
            List <string> nationality_substrings = new List <string>();
            bool          empty_nationality      = globalFuncs.multiEntryTextBox(ref nationality_substrings, searchUI.nation);
            List <string> stadium_substrings     = new List <string>();
            bool          empty_stadium          = globalFuncs.multiEntryTextBox(ref stadium_substrings, searchUI.stadium);

            TEAMSTATE teamState = TEAMSTATE.TS_NONNATIONAL;

            TeamGridViewModel newRow;
            DateTime          timerStart = DateTime.Now;
            Club   club            = null;
            string clubName        = "";
            string clubNationality = "";
            string clubStadium     = "";
            double counter         = 0;
            double total           = 100.0 / (double)globalFuncs.allClubs.Count;

            foreach (DictionaryEntry entry in globalFuncs.allClubs)
            {
                progressBarValue = counter * total;
                ++counter;
                if (stopSearching)
                {
                    searching     = false;
                    stopSearching = false;
                    break;
                }

                club = (Club)entry.Value;
                // check empty name
                if (club.Name.Length == 0 && club.Country != null)
                {
                    System.Diagnostics.Debug.WriteLine(club.Name);
                }
                if (club.Name.Length == 0 && club.Country != null)
                {
                    continue;
                }

                // check name
                if (!empty_name)
                {
                    clubName = club.Name.ToLower();
                    globalFuncs.specialCharactersReplacement(ref clubName);
                    int no_of_successes = 0;
                    foreach (string str in name_substrings)
                    {
                        if (clubName.Contains(str))
                        {
                            ++no_of_successes;
                        }
                    }

                    if (no_of_successes != name_substrings.Count)
                    {
                        continue;
                    }
                }

                teamState = TEAMSTATE.TS_NONNATIONAL;
                if (club.Country != null)
                {
                    if (globalFuncs.localization.regionsNative.Contains(club.Country.Name))
                    {
                        teamState = TEAMSTATE.TS_NATIONAL;
                    }
                }

                // check nationality
                if (!empty_nationality)
                {
                    if (club.Country != null)
                    {
                        if (teamState == TEAMSTATE.TS_NONNATIONAL)
                        {
                            clubNationality = club.Country.Name.ToLower();
                        }
                        else
                        {
                            clubNationality = club.Name.ToLower();
                        }

                        int no_of_successes = 0;
                        foreach (string str in nationality_substrings)
                        {
                            if (clubNationality.Contains(str))
                            {
                                ++no_of_successes;
                            }
                        }

                        if (no_of_successes != nationality_substrings.Count)
                        {
                            continue;
                        }

                        if (teamState == TEAMSTATE.TS_NATIONAL)
                        {
                            clubNationality = club.Country.Name.ToLower();
                        }
                    }
                    else
                    {
                        globalFuncs.logging.update("Error: Not added " + club.Name + ". Reason: Country null");
                    }
                }

                // check type
                if (searchUI.teamtypeIndex > 0)
                {
                    if (searchUI.teamtypeIndex == 1 && teamState == TEAMSTATE.TS_NONNATIONAL)
                    {
                        continue;
                    }
                    else if (searchUI.teamtypeIndex == 2 && teamState == TEAMSTATE.TS_NATIONAL)
                    {
                        continue;
                    }
                }

                int curTeam = 0;
                //for (curTeam = 0; curTeam < club.Teams.Count; ++curTeam)
                //{
                //    if (club.Teams[curTeam].Type == TeamTypeEnum.First)
                //        break;
                //    else if (club.Teams[curTeam].Type == TeamTypeEnum.Amateur)
                //        break;
                //    //else if (club.Teams[curTeam].Type == TeamTypeEnum.Empty)
                //    //  break;
                //}

                if (curTeam == club.Teams.Count)
                {
                    --curTeam;
                }
                if (curTeam < 0)
                {
                    continue;
                }

                // check reputation
                if (searchUI.reputationIndex > 0)
                {
                    if (searchUI.reputationIndex == 1 && club.Teams[curTeam].Reputation < 8000)
                    {
                        continue;
                    }
                    else if (searchUI.reputationIndex == 2 && (!(club.Teams[curTeam].Reputation > 5000 && club.Teams[curTeam].Reputation <= 8000)))
                    {
                        continue;
                    }
                    else if (searchUI.reputationIndex == 3 && (!(club.Teams[curTeam].Reputation > 3000 && club.Teams[curTeam].Reputation <= 5000)))
                    {
                        continue;
                    }
                    else if (searchUI.reputationIndex == 4 && (!(club.Teams[curTeam].Reputation > 0 && club.Teams[curTeam].Reputation <= 3000)))
                    {
                        continue;
                    }
                }

                // check region
                if (searchUI.regionIndex > 0 && club.Country != null)
                {
                    if (teamState == TEAMSTATE.TS_NONNATIONAL)
                    {
                        if (!searchUI.regionItem.Contains(club.Country.Continent.Name))
                        {
                            continue;
                        }
                    }
                    else
                    {
                        if (!searchUI.regionItem.Contains(club.Country.Name))
                        {
                            continue;
                        }
                    }
                }

                // check stadium
                if (!empty_stadium)
                {
                    if (club.Teams[curTeam].Stadium != null)
                    {
                        clubStadium = club.Teams[curTeam].Stadium.Name.ToLower();
                        globalFuncs.specialCharactersReplacement(ref clubStadium);
                        int no_of_successes = 0;
                        foreach (string str in stadium_substrings)
                        {
                            if (clubStadium.Contains(str))
                            {
                                ++no_of_successes;
                            }
                        }

                        if (no_of_successes != stadium_substrings.Count)
                        {
                            continue;
                        }
                    }
                    else
                    {
                        globalFuncs.logging.update("Error: No stadium found for " + club.Name);
                        continue;
                    }
                }

                // check transfer budget
                if (searchUI.transferBudgetMin > 0)
                {
                    if (club.Finances.SeasonTransferBudget < searchUI.transferBudgetMin ||
                        club.Finances.SeasonTransferBudget > searchUI.transferBudgetMax)
                    {
                        continue;
                    }
                }
                else
                {
                    if (club.Finances.SeasonTransferBudget > searchUI.transferBudgetMax)
                    {
                        continue;
                    }
                }

                if (searchUI.transferBudgetMin > 0)
                {
                    if (club.Finances.WageBudget < searchUI.wageBudgetMin ||
                        club.Finances.WageBudget > searchUI.wageBudgetMax)
                    {
                        continue;
                    }
                }
                else
                {
                    if (club.Finances.WageBudget < searchUI.wageBudgetMin)
                    {
                        continue;
                    }
                }

                newRow           = new TeamGridViewModel();
                newRow.TeamState = teamState;
                addTeamToGrid(club, ref newRow, curTeam);
                //dataTable.Add(newRow);

                this.Dispatcher.BeginInvoke(
                    System.Windows.Threading.DispatcherPriority.Normal,
                    currentResultDelegate, newRow);
            }

            this.Dispatcher.BeginInvoke(
                System.Windows.Threading.DispatcherPriority.Normal,
                finalResultDelegate);
        }
        public void retrieveFieldsWonder()
        {
            CurrentResultDelegate currentResultDelegate = new CurrentResultDelegate(currentResultWonder);
            FinalResultDelegate   finalResultDelegate   = new FinalResultDelegate(finalResultWonder);

            PreferencesSettings settings = GlobalSettings.getSettings().curPreferencesSettings;

            TEAMSTATE teamState = TEAMSTATE.TS_NONNATIONAL;

            TeamGridViewModel newRow;
            DateTime          timerStart = DateTime.Now;
            double            counter    = 0;
            double            total      = 100.0 / (double)globalFuncs.allClubs.Count;

            foreach (DictionaryEntry entry in globalFuncs.allClubs)
            {
                progressBarValue = counter * total;
                ++counter;

                if (stopSearching)
                {
                    searching     = false;
                    stopSearching = false;
                    break;
                }

                Club club = (Club)entry.Value;
                // check empty name
                if (club.Name.Length == 0)
                {
                    continue;
                }

                int curTeam = 0;
                //for (curTeam = 0; curTeam < club.Teams.Count; ++curTeam)
                //{
                //    if (club.Teams[curTeam].Type == TeamTypeEnum.First)
                //        break;
                //    else if (club.Teams[curTeam].Type == TeamTypeEnum.Amateur)
                //        break;
                //    //else if (club.Teams[curTeam].Type == TeamTypeEnum.Empty)
                //    //  break;
                //}

                if (curTeam == club.Teams.Count)
                {
                    --curTeam;
                }

                teamState = TEAMSTATE.TS_NONNATIONAL;
                if (club.Country != null)
                {
                    if (globalFuncs.localization.regionsNative.Contains(club.Country.Name))
                    {
                        teamState = TEAMSTATE.TS_NATIONAL;
                    }
                }

                // check reputation
                if (club.Teams[curTeam].Reputation <= settings.wonderteamsMinRep)
                {
                    continue;
                }

                newRow           = new TeamGridViewModel();
                newRow.TeamState = teamState;
                addTeamToGrid(club, ref newRow, curTeam);
                //dataTable.Add(newRow);

                this.Dispatcher.BeginInvoke(
                    System.Windows.Threading.DispatcherPriority.Normal,
                    currentResultDelegate, newRow);
            }

            this.Dispatcher.BeginInvoke(
                System.Windows.Threading.DispatcherPriority.Normal,
                finalResultDelegate);
        }
Exemple #3
0
        public void loadShortlistPlayers(ref List <int> playersID)
        {
            CurrentResultDelegate currentResultDelegate = new CurrentResultDelegate(currentResult);
            FinalResultDelegate   finalResultDelegate   = new FinalResultDelegate(finalResult);

            List <string> player_positions = new List <string>();
            List <string> player_sides     = new List <string>();

            PLAYERCLUBSTATE playerClubState = PLAYERCLUBSTATE.PCS_FREE;
            PLAYEREUSTATE   playerEUState   = PLAYEREUSTATE.PES_NONEU;

            PlayerGridViewModel newRow;
            List <String>       playerNationalities = new List <String>();
            String   playerClub = "";
            Contract contract   = null;
            double   counter    = 0;
            double   total      = 100.0 / (double)context.fm.Players.Count();

            // remove duplicate rows
            for (int i = 0; i < playersID.Count; ++i)
            {
                if (context.shortlistIDList.Contains(playersID[i]))
                {
                    playersID.Remove(playersID[i]);
                }
            }

            foreach (Player _player in context.fm.Players)
            {
                progressBarValue = counter * total;
                ++counter;
                Player player = null;
                for (int i = 0; i < playersID.Count; ++i)
                {
                    // check ID
                    player = null;
                    if (_player.ID.Equals(playersID[i]))
                    {
                        if (!context.shortlistIDList.Contains(_player.ID))
                        {
                            player = _player;
                            playersID.RemoveAt(i);
                            break;
                        }
                    }
                }

                if (player != null)
                {
                    // check position
                    string playerPosition = "";
                    context.find_player_position(player, ref playerPosition, ref player_positions, ref player_sides, true);

                    // check club
                    playerClub      = globalFuncs.localization.SearchingResults[ScoutLocalization.SR_FREEPLAYER];
                    playerClubState = PLAYERCLUBSTATE.PCS_FREE;
                    context.findPlayerContractQuery(player, ref contract, ref playerClub, ref playerClubState);

                    // check nation
                    playerNationalities.Clear();
                    playerNationalities.Add(player.Nationality.Name);
                    // other nationalities
                    List <PlayerRelations> relations = player.Relations.Relations;
                    if (player.Relations != null)
                    {
                        for (int playerRelationIndex = 0; playerRelationIndex < player.Relations.RelationsTotal; ++playerRelationIndex)
                        {
                            if (relations[playerRelationIndex].RelationType == RelationType.OtherNationality)
                            {
                                playerNationalities.Add(relations[playerRelationIndex].Country.Name);
                            }
                        }
                    }
                    // check EU
                    playerEUState = PLAYEREUSTATE.PES_NONEU;
                    for (int i = 0; i < playerNationalities.Count; ++i)
                    {
                        if (globalFuncs.EUcountries.Contains(playerNationalities[i]))
                        {
                            playerEUState = PLAYEREUSTATE.PES_EU;
                            break;
                        }
                    }

                    newRow           = new PlayerGridViewModel();
                    newRow.EUState   = playerEUState;
                    newRow.ClubState = playerClubState;
                    addShortlistPlayerToGrid(player, ref newRow, ref playerPosition, ref playerClub, ref playerNationalities);

                    this.Dispatcher.BeginInvoke(
                        System.Windows.Threading.DispatcherPriority.Normal,
                        currentResultDelegate, newRow);
                }
            }

            this.Dispatcher.BeginInvoke(
                System.Windows.Threading.DispatcherPriority.Normal,
                finalResultDelegate);
        }