public void UpdateSinglesOverlay(SinglesViewModel singlesViewModel)
        {
            try
            {
                var singlesCssModel = new SinglesCssModel();
                singlesCssModel.Player1.NameAndSponsor = _textReplacer.ReplaceIdAndValueForPlayerName(_textTemplateCss, "player1NameText", singlesViewModel.Player1.Sponsor, singlesViewModel.Player1.Name);
                singlesCssModel.Player1.Twitter        = _textReplacer.ReplaceIdAndValue(_textTemplateCss, "player1TwitterText", singlesViewModel.Player1.Twitter ?? "");
                singlesCssModel.Player1.Score          = _textReplacer.ReplaceIdAndValue(_textTemplateCss, "player1ScoreText", singlesViewModel.Player1.Score ?? "?");
                singlesCssModel.Player1.CharacterPath  = _textReplacer.ReplaceIdAndValue(_imageTemplateCss, "player1Character", singlesViewModel.Player1.Character ?? "../../CharacterIcons/random.png");
                singlesCssModel.Player1.PortPath       = _textReplacer.ReplaceIdAndValue(_imageTemplateCss, "player1Port", singlesViewModel.Player1.Port ?? "../../PlayerPorts/playerPortNo.png");

                singlesCssModel.Player2.NameAndSponsor = _textReplacer.ReplaceIdAndValueForPlayerName(_textTemplateCss, "player2NameText", singlesViewModel.Player2.Sponsor, singlesViewModel.Player2.Name);
                singlesCssModel.Player2.Twitter        = _textReplacer.ReplaceIdAndValue(_textTemplateCss, "player2TwitterText", singlesViewModel.Player2.Twitter ?? "");
                singlesCssModel.Player2.Score          = _textReplacer.ReplaceIdAndValue(_textTemplateCss, "player2ScoreText", singlesViewModel.Player2.Score ?? "?");
                singlesCssModel.Player2.CharacterPath  = _textReplacer.ReplaceIdAndValue(_imageTemplateCss, "player2Character", singlesViewModel.Player2.Character ?? "../../CharacterIcons/random.png");
                singlesCssModel.Player2.PortPath       = _textReplacer.ReplaceIdAndValue(_imageTemplateCss, "player2Port", singlesViewModel.Player2.Port ?? "../../PlayerPorts/playerPortNo.png");

                singlesCssModel.Tournament = _textReplacer.ReplaceIdAndValue(_textTemplateCss, "tournamentText", singlesViewModel.Tournament ?? "");
                singlesCssModel.Extra      = _textReplacer.ReplaceIdAndValue(_textTemplateCss, "extraText", singlesViewModel.Extra ?? "");
                singlesCssModel.Round      = _textReplacer.ReplaceIdAndValue(_textTemplateCss, "roundText", singlesViewModel.Round ?? "");
                singlesCssModel.BestOf     = _textReplacer.ReplaceIdAndValue(_textTemplateCss, "bestOfText", singlesViewModel.BestOf + "");

                _fileWriter.WriteSinglesCssFile(singlesViewModel.PathToFormat, singlesCssModel);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
                throw;
            }
        }
        public JsonResult UpdateSingles(SinglesViewModel singlesViewModel)
        {
            try
            {
                _smashOverlayManager.UpdateSinglesOverlay(singlesViewModel);

                return(Json(new SnackbarViewModel(true, "Successfully saved competitor files"), JsonRequestBehavior.DenyGet));
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
                return(Json(new SnackbarViewModel(false, "Something went wrong while saving competitor files, see the console for details", ex.Message), JsonRequestBehavior.DenyGet));
            }
        }