in CosmosClone/CosmicCloneUI/DataAnonymizationPage.xaml.cs [78:254]
void AddRuleWithData(WrapPanel parentStackPanel, int ruleIndex, ScrubRule scrubRule = null)
{
StackPanel RuleHeadersp = new StackPanel();
RuleHeadersp.Orientation = Orientation.Horizontal;
TextBlock HeaderTB = new TextBlock();
HeaderTB.Text = "Rule " + (ruleIndex);
Label RuleIdLabel = new Label();
RuleIdLabel.Content = ruleIndex;
RuleIdLabel.Visibility = Visibility.Hidden;
Button DeleteBtn = new Button();
DeleteBtn.Name = "btnDelete_" + ruleIndex;
DeleteBtn.HorizontalAlignment = HorizontalAlignment.Right;
//DeleteBtn.Content = "Delete";
DeleteBtn.Margin = new Thickness(265, 0, 0, 0);
DeleteBtn.Click += DeleteBtn_Click;
DeleteBtn.Content = new Image
{
Source = new BitmapImage(new Uri("/Images/closeIcon.png", UriKind.Relative)),
VerticalAlignment = VerticalAlignment.Center
};
RuleHeadersp.Children.Add(HeaderTB);
RuleHeadersp.Children.Add(DeleteBtn);
Expander exp = new Expander();
exp.Header = RuleHeadersp;
exp.HorizontalAlignment = HorizontalAlignment.Left;
exp.Margin = new Thickness(20, 30, 0, 0);
exp.BorderThickness = new Thickness(1, 1, 1, 1);
exp.Width = 350;
exp.BorderBrush = Brushes.Gray;
exp.Background = Brushes.White;
exp.IsExpanded = true;
exp.Name = "RuleExpander_" + ruleIndex;
StackPanel sp = new StackPanel();
sp.Orientation = Orientation.Vertical;
sp.Margin = new Thickness(20, 5, 0, 0);
StackPanel filterSP = new StackPanel();
filterSP.Orientation = Orientation.Horizontal;
filterSP.Margin = new Thickness(0, 5, 0, 2);
StackPanel attributeSP = new StackPanel();
attributeSP.Orientation = Orientation.Horizontal;
attributeSP.Margin = new Thickness(0, 5, 0, 2);
StackPanel scrubTypeSP = new StackPanel();
scrubTypeSP.Orientation = Orientation.Horizontal;
scrubTypeSP.Margin = new Thickness(0, 5, 0, 2);
StackPanel scrubValueSP = new StackPanel();
scrubValueSP.Orientation = Orientation.Horizontal;
scrubValueSP.Margin = new Thickness(0, 5, 0, 2);
TextBlock FilterLabel = new TextBlock();
FilterLabel.VerticalAlignment = VerticalAlignment.Center;
FilterLabel.Margin = new Thickness(10, 0, 0, 0);
//FilterLabel.MaxWidth = 150;
Run runFilterLabel = new Run();
runFilterLabel.Text = "Filter Query";
runFilterLabel.FontSize = 15;
Run runFilterLabelHint = new Run();
runFilterLabelHint.Text = " \nEx: c.Type = \"document\"";
runFilterLabelHint.FontSize = 10;
FilterLabel.Inlines.Add(runFilterLabel);
FilterLabel.Inlines.Add(runFilterLabelHint);
TextBox FilterTB = new TextBox();
FilterTB.Name = "Filter" + ruleIndex;
FilterTB.Width = 150;
FilterTB.HorizontalContentAlignment = HorizontalAlignment.Left;
FilterTB.VerticalAlignment = VerticalAlignment.Center;
FilterTB.Margin = new Thickness(20, 0, 0, 0);
TextBlock AttributeScrubLabel = new TextBlock();
AttributeScrubLabel.VerticalAlignment = VerticalAlignment.Center;
AttributeScrubLabel.Margin = new Thickness(10, 0, 0, 0);
//AttributeScrubLabel.Width = 120;
Run runAttributeScrubLabel = new Run();
runAttributeScrubLabel.Text = "Attribute To Scrub";
runAttributeScrubLabel.FontSize = 15;
Run runAttributeScrubLabelHint = new Run();
runAttributeScrubLabelHint.Text = " \nEx: c.Person.Email";
runAttributeScrubLabelHint.FontSize = 10;
AttributeScrubLabel.Inlines.Add(runAttributeScrubLabel);
AttributeScrubLabel.Inlines.Add(runAttributeScrubLabelHint);
TextBox AttributeScrubTB = new TextBox();
AttributeScrubTB.Name = "ScrubAttribute" + ruleIndex;
AttributeScrubTB.Width = 150;
AttributeScrubTB.HorizontalContentAlignment = HorizontalAlignment.Left;
AttributeScrubTB.VerticalAlignment = VerticalAlignment.Center;
AttributeScrubTB.Margin = new Thickness(20, 0, 0, 0);
TextBlock ScrubTypeLabel = new TextBlock();
ScrubTypeLabel.Text = "Scrub Type";
ScrubTypeLabel.FontSize = 15;
ScrubTypeLabel.VerticalAlignment = VerticalAlignment.Center;
ScrubTypeLabel.Margin = new Thickness(10, 0, 0, 0);
ComboBox ScrubTypeCB = new ComboBox();
ScrubTypeCB.Name = "ScrubType" + ruleIndex;
ScrubTypeCB.Width = 150;
ScrubTypeCB.Margin = new Thickness(20, 0, 0, 0);
foreach (RuleType val in Enum.GetValues(typeof(RuleType)))
{
ScrubTypeCB.Items.Add(val.ToString());
}
ScrubTypeCB.SelectionChanged += new SelectionChangedEventHandler(scrubTypeComboBox_SelectedIndexChanged);
TextBlock ScrubValueLabel = new TextBlock();
ScrubValueLabel.Text = "Replace with";
ScrubValueLabel.FontSize = 15;
ScrubValueLabel.VerticalAlignment = VerticalAlignment.Center;
ScrubValueLabel.Margin = new Thickness(10, 0, 0, 5);
TextBox ScrubValueTB = new TextBox();
ScrubValueTB.Name = "ScrubValue" + ruleIndex;
ScrubValueTB.Width = 150;
ScrubValueTB.HorizontalContentAlignment = HorizontalAlignment.Left;
ScrubValueTB.VerticalAlignment = VerticalAlignment.Center;
ScrubValueTB.Margin = new Thickness(20, 0, 0, 0);
FilterLabel.Width = 120;
FilterTB.Width = 150;
AttributeScrubLabel.Width = 120;
AttributeScrubTB.Width = 150;
ScrubTypeLabel.Width = 120;
ScrubTypeCB.Width = 150;
ScrubValueLabel.Width = 120;
filterSP.Children.Add(FilterLabel);
filterSP.Children.Add(FilterTB);
attributeSP.Children.Add(AttributeScrubLabel);
attributeSP.Children.Add(AttributeScrubTB);
scrubTypeSP.Children.Add(ScrubTypeLabel);
scrubTypeSP.Children.Add(ScrubTypeCB);
scrubValueSP.Children.Add(ScrubValueLabel);
scrubValueSP.Children.Add(ScrubValueTB);
scrubValueSP.Children.Add(RuleIdLabel);
scrubValueSP.Visibility = Visibility.Hidden;
sp.Children.Add(attributeSP);
sp.Children.Add(filterSP);
sp.Children.Add(scrubTypeSP);
sp.Children.Add(scrubValueSP);
exp.Content = sp;
if(scrubRule!=null)
{
FilterTB.Text = scrubRule.FilterCondition;
AttributeScrubTB.Text = scrubRule.PropertyName;
if(scrubRule.Type!=null) ScrubTypeCB.SelectedIndex = (int)scrubRule.Type;
ScrubValueTB.Text = scrubRule.UpdateValue;
}
parentStackPanel.Children.Add(exp);
if(!SaveRuleButton.IsEnabled)
{
SaveRuleButton.IsEnabled = true;
}
}