public static string ReplaceExpansions(string text, TextExpansionLibrary textExpansions)
        {
            foreach (var textExpansion in textExpansions)
            {
                var regexAfterSentence = new Regex($"(\\w\\s)\\b({textExpansion.ContractedText})\\b");
                text = regexAfterSentence.Replace(text, $"$1{textExpansion.ExportVariations.SelectVariation().ToLower()}");

                var regexAfterComma = new Regex($"(,\\s)\\b({textExpansion.ContractedText})\\b");
                text = regexAfterComma.Replace(text, $"$1{textExpansion.ExportVariations.SelectVariation().ToLower()}");

                var regex = new Regex($"\\b{textExpansion.ContractedText}\\b");
                text = regex.Replace(text, textExpansion.ExportVariations.SelectVariation());
            }

            return(text);
        }
        private string GetExportText()
        {
            var s = _modelBaseElement.ToString();

            if (_textExpansionLibrary == null)
            {
                OpenFileDialog openFileDialog = new OpenFileDialog();
                if (openFileDialog.ShowDialog(this) == true)
                {
                    _textExpansionLibrary = TextExpansionsHelper.LoadExpansions(openFileDialog.FileName);
                }
                else
                {
                    return("Need to select appropriate expansions file.");
                }
            }
            s = TextExpansionsHelper.ReplaceExpansions(s, _textExpansionLibrary);

            if (PatientName.Text != null)
            {
                s = s.Replace("$patient$", PatientName.Text);
            }
            if (PatientName.Text != null)
            {
                s = s.Replace("$pt$", PatientName.Text);
            }

            if (PatientGender.IsChecked.Value)
            {
                s = s.Replace("$gender$", "his");
                s = s.Replace("$g$", "his");
                s = s.Replace("$g2$", "he");
            }
            else
            {
                s = s.Replace("$gender$", "her");
                s = s.Replace("$g$", "her");
                s = s.Replace("$g2$", "she");
            }


            return(s);
        }
        private void ShowExpansionsHelper_OnClick(object sender, RoutedEventArgs e)
        {
            if (_textExpansionLibrary == null)
            {
                OpenFileDialog openFileDialog = new OpenFileDialog();
                if (openFileDialog.ShowDialog(this) == true)
                {
                    _textExpansionLibrary = TextExpansionsHelper.LoadExpansions(openFileDialog.FileName);
                }
                else
                {
                    return;
                }
            }

            var expansionsHelperWindow = new Window {
                Width = 500, Height = 700
            };
            var stackPanel = new StackPanel {
                Margin = new Thickness(15)
            };

            stackPanel.CanVerticallyScroll = true;

            stackPanel.Children.Add(new Label {
                Content = "Possible Text Expansions", FontSize = 26
            });

            foreach (var expansion in _textExpansionLibrary)
            {
                stackPanel.Children.Add(new Label {
                    Content = $"{expansion.ContractedText} - {expansion.ExportVariations.SelectVariation()}"
                });
            }

            expansionsHelperWindow.Content = stackPanel;

            expansionsHelperWindow.Show();
        }
 public MainWindow()
 {
     InitializeComponent();
     _textExpansionLibrary = TextExpansionsHelper.LoadExpansions("Expansions/Expansions.xml");
 }
        private void LoadExpansionsFile_OnClick(object sender, RoutedEventArgs e)
        {
            OpenFileDialog openFileDialog = new OpenFileDialog();

            _textExpansionLibrary = openFileDialog.ShowDialog(this) == true?TextExpansionsHelper.LoadExpansions(openFileDialog.FileName) : null;
        }