public bool AddMove(string matchId, string playerId, string moveValue) { Match match = Matches[matchId]; IPlayer player = match.Player1.Id == playerId ? match.Player1 : match.Player2; Game game; if (CurrentGames.ContainsKey(matchId) && CurrentGames[matchId] != null) { game = CurrentGames[matchId]; } else { game = new Game(match); CurrentGames[matchId] = game; } IMoves move = MovesFactory.CreateMovesFromType(MoveType); move.SetValue(moveValue); if (game.AddMove(player, move)) { match.AddNewGame(game); CurrentGames[matchId] = null; return(true); } return(false); }
private void RenameUnmatchedFolders() { var result = System.Windows.MessageBox.Show("Sure you want to rename all folders checked?", "Rename folders", System.Windows.MessageBoxButton.YesNo); if (result == System.Windows.MessageBoxResult.Yes) { var foldersToRemove = new List <UnMatchedFolder>(); //Add folders to Matched (CurrentGames) foreach (var folder in UnmatchedFolders.Where(x => x.Rename)) { try { Directory.Move(Path.Combine(CurrentMediaFolder, folder.FolderName), Path.Combine(CurrentMediaFolder, folder.RecommendedName)); foldersToRemove.Add(folder); CurrentGames.Add(new TempGame { HasFolder = true, RomName = folder.RecommendedName }); } catch (Exception) { } } //remove folders from unmatched foreach (var item in foldersToRemove) { UnmatchedFolders.Remove(item); } } }
public async Task LoadAndScanFolders() { IsBusy = false; try { CurrentGames.Clear(); await Task.Run(() => { Directories = _rlScan.GetAllFolders(CurrentMediaFolder); Results = _rlScan.MatchFoldersToGames(Directories, _games); }); Results.UnMatchedFolders.ForEach(folder => { UnmatchedFolders.Add(new UnMatchedFolder { FolderName = folder }); }); var games = _games.Select(x => new TempGame { RomName = x.RomName, HasFolder = Results.MatchedFolders.Any(y => y == x.RomName) }); foreach (var game in games) { CurrentGames.Add(game); } } catch { } finally { IsBusy = true; } }
public CurrentGames GenerateGamesFields(CurrentGames currentGames, Field currentField) { for (int i = 0; i < currentGames.GameCount; i++) { currentGames.AllCurrentGames.Add(NewFieldGeneration.GenerateFieldOfOneGame(currentField.FieldSize)); } return(currentGames); }
private async void RefreshBoard() { //Refresh the board BoardSection.Clear(); BoardSection.Add(new ViewCell() { View = common.Common.GetLoadingGridView("Loading The Board™") }); Settings.Players = await BasicRequest <List <Player> >("Players/List", "POST"); var boardStatus = await BasicRequest <Dictionary <string, decimal> >("Status/All", "POST"); Settings.Players.Sort((x, y) => y.CurrentMargin.CompareTo(x.CurrentMargin)); BoardSection.Clear(); foreach (Player Play in Settings.Players) { var LabelColor = Color.Red; if (Play.Active) { LabelColor = Color.White; } var Cell = new EntryCell() { IsEnabled = false, Text = boardStatus[Play.Name].ToString("F2"), Label = Play.Name, LabelColor = LabelColor }; BoardSection.Add(Cell); } //refresh the games CurrentGames.Clear(); CurrentGames.Add(new ViewCell() { View = common.Common.GetLoadingGridView("Loading Current Games") }); var Games = await BasicRequest <List <GameInfo> >("GamesPlayed/Unfinished", "POST"); CurrentGameEntries = new Dictionary <TextCell, GameInfo>(); Games.Sort((x, y) => y.GameUniqueId.CompareTo(x.GameUniqueId)); CurrentGames.Clear(); foreach (GameInfo game in Games) { var playernames = new List <string>(); foreach (Player player in game.Players) { playernames.Add(player.Name); } var Cell = new TextCell() { Text = game.GameType.Name + " - £" + game.Entry.ToString("F2"), Detail = $"ID: {game.GameUniqueId} Players: {string.Join(", ",playernames)}" }; Cell.Tapped += CurrentGamePress; CurrentGameEntries.Add(Cell, game); CurrentGames.Add(Cell); } }
/// <summary> /// Matches the folders asynchronous. /// </summary> /// <returns></returns> private async Task MatchFoldersAsync() { await Task.Run(() => { var matchDistance = 0; var rgx = new Regex(patterns); foreach (var unmatchedFolder in UnmatchedFolders) { //Reset the match distance matchDistance = MatchDistance; //Get the unmatched folders name and remove parentheses if necessary var folderToMatch = unmatchedFolder.FolderName; if (RemoveParenthsys) { folderToMatch = rgx.Replace(folderToMatch, string.Empty); } //Get best match from games list where not already matched to a folder. foreach (var item in CurrentGames.Where(x => !x.HasFolder)) { var bestMatch = ""; var gameFolder = item.RomName; if (RemoveParenthsys) { gameFolder = rgx.Replace(gameFolder, string.Empty); } var d = new Distance(); var i = d.LD(gameFolder, folderToMatch); if (i <= matchDistance) { matchDistance = i; bestMatch = item.RomName; unmatchedFolder.Rename = true; unmatchedFolder.RecommendedName = item.RomName; } } //See if this matched folder already exists and mark it. if (!string.IsNullOrWhiteSpace(unmatchedFolder.RecommendedName)) { var game = CurrentGames.FirstOrDefault(x => x.RomName == unmatchedFolder.RecommendedName); if (game != null && game.HasFolder) { unmatchedFolder.FolderExists = true; } } } }); }
public CommandController(Settings settings, CurrentGames currentGames) { _settings = settings; _currentGames = currentGames; _soundPlayer = new SoundPlayer(); }