Beispiel #1
0
 private void DoMasking(IMaskingStrategy strategy, IEnumerable <DataRow> source, string columnName)
 {
     strategy.Initialize(source.First().Table, columnName);
     foreach (var row in source)
     {
         strategy.ParallelMaskingAction(row);
     }
 }
Beispiel #2
0
 private void DoMasking(IMaskingStrategy strategy, DataTable table, string columnName)
 {
     strategy.Initialize(table, columnName);
     foreach (var row in table.AsEnumerable())
     {
         strategy.ParallelMaskingAction(row);
     }
 }
        public CMaskingMaster()
        {
            strategy      = null;
            strategyNames = new Dictionary <string, string>();

            strategyNames = CReflectionTools.GetStrategyNamesFromNamespace("DiplomaMaster.MaskingMethods", "CMasking_");

            MaskImage       = new Image <Gray, byte>(1, 1, new Gray(0));
            NeuronBodyMasks = new List <NeuronBodyMask>();
        }
 public void SetMethod(string MethodName)
 {
     if (!strategyNames.ContainsKey(MethodName))
     {
         throw new Exception("SetMethod: method name incorrect!");
     }
     else
     {
         Assembly assembly = Assembly.GetExecutingAssembly();
         Type     type     = assembly.GetTypes()
                             .First(t => t.Name == strategyNames[MethodName]);
         strategy = (IMaskingStrategy)Activator.CreateInstance(type);
     }
 }
Beispiel #5
0
        private async Task ApplyMask(Dictionary <string, Tuple <MaskingOptions, string> > maskingInformation, IEnumerable <DataRow> dataRows)
        {
            Console.Out.WriteLine("Combining multiple strategies into one...");
            List <IMaskingStrategy> strats = new List <IMaskingStrategy>();

            foreach (var item in maskingInformation)
            {
                string         colName  = item.Key;
                MaskingOptions option   = item.Value.Item1;
                string         method   = item.Value.Item2;
                var            strategy = MaskingStrategyFactory.CreateStrategyFromMaskingOption(option, method);
                strategy.Initialize(dataRows.First().Table, colName); //'must call this here for aggregatre strategies
                Console.Out.WriteLine($"Applying datamask of type {option} to column {colName}");
                strats.Add(strategy);
            }
            IMaskingStrategy CombinedStrategy = MaskingStrategyFactory.CombineStrategiesIntoSingleStrategy(strats);
            DataMasker       masker           = new DataMasker(CombinedStrategy);
            await masker.MaskDataRowEnumerableAsync(dataRows, "allcols");

            Console.Out.WriteLine("Strategies executed.");
        }
Beispiel #6
0
 public DataMasker(IMaskingStrategy strategy)
 {
     m_Strategy = strategy;
 }
Beispiel #7
0
 public void AddStrategy(IMaskingStrategy strategy)
 {
     m_Strategies.Add(strategy);
 }
        public static IMaskingStrategy CreateStrategyFromMaskingOption(MaskingOptions option, string maskingMethod = null)
        {
            IMaskingStrategy ret = m_OptionToStrategyFactoryMethods[option](maskingMethod);

            return(ret);
        }