Beispiel #1
0
        private void lstVRules_MouseDoubleClick(object sender, MouseButtonEventArgs e)
        {
            if (lstVRules.SelectedIndex != -1)
            {
                RuleFile ruleSelected = (RuleFile)lstVRules.SelectedValue;

                NewRule ruleDetail = new NewRule(ruleSelected);
                ruleDetail.ShowDialog();

                ruleSelected = ruleDetail.rule;

                using (var db = new DataContext())
                {
                    db.PersistEntity(ruleSelected);
                    db.SaveChanges();
                }

                App.Single.UpdateWork(inspector);

                List <RuleFile> lstRules = (List <RuleFile>)lstVRules.ItemsSource;

                lstVRules.ItemsSource = null;
                lstVRules.ItemsSource = lstRules;
            }
        }
Beispiel #2
0
        private void RulesRefresh(RuleFile rule_, Boolean added = false)
        {
            List <RuleFile> lstRules = new List <RuleFile>();

            if (rule_ == null)
            {
                using (var db = new DataContext())
                {
                    db.AttachEntity(inspector);

                    inspector.Rules.ToList().ForEach(rule => SetImageRule(rule));
                    lstRules = inspector.Rules.ToList();
                }
            }
            else
            {
                lstRules = (List <RuleFile>)lstVRules.ItemsSource;

                if (added)
                {
                    lstRules.Add(rule_);
                }
                else
                {
                    lstRules.Remove(rule_);
                }
            }

            lstVRules.ItemsSource = null;
            lstVRules.ItemsSource = lstRules;
        }
        public void VerifyEmbeddedRulesAreValid()
        {
            var analyzer = new AsaAnalyzer();
            var ruleFile = RuleFile.LoadEmbeddedFilters();

            Assert.IsTrue(!analyzer.EnumerateRuleIssues(ruleFile.GetRules()).Any());
        }
Beispiel #4
0
        public void SetRule(RuleFile rule)
        {
            this.rule = (RuleFileDate)rule;

            dateFirst.SelectedDate = this.rule.DateFirst;
            dateLast.SelectedDate  = this.rule.DateLast;
        }
Beispiel #5
0
        public void LoadFilters(string filterLoc = "")
        {
            if (!string.IsNullOrEmpty(filterLoc))
            {
                try
                {
                    using (StreamReader file = System.IO.File.OpenText(filterLoc))
                    {
                        config = JsonSerializer.Deserialize <RuleFile>(file.ReadToEnd());
                        Log.Information(Strings.Get("LoadedAnalyses"), filterLoc);
                    }
                    if (config == null)
                    {
                        Log.Debug("No filters this time.");
                        return;
                    }
                    DumpFilters();
                }
                catch (Exception e) when(
                    e is UnauthorizedAccessException ||
                    e is ArgumentException ||
                    e is ArgumentNullException ||
                    e is PathTooLongException ||
                    e is DirectoryNotFoundException ||
                    e is FileNotFoundException ||
                    e is NotSupportedException)
                {
                    config = new RuleFile();
                    //Let the user know we couldn't load their file
                    Log.Warning(Strings.Get("Err_MalformedFilterFile"), filterLoc);

                    return;
                }
            }
        }
        void link_Click(object sender, RoutedEventArgs e)
        {
            Hyperlink link = sender as Hyperlink;
            RuleFile  file = link.DataContext as RuleFile;

            if (file.FILEPATH == null || file.FILEPATH.Length == 0)
            {
                MessageBox.Show("没找到附件内容");
                return;
            }
            System.Windows.Forms.SaveFileDialog dialog = new System.Windows.Forms.SaveFileDialog();
            dialog.FileName   = file.FILENAME;
            dialog.DefaultExt = file.FILETYPE;
            System.Windows.Forms.DialogResult dialogResult = dialog.ShowDialog();
            if (dialogResult == System.Windows.Forms.DialogResult.OK || dialogResult == System.Windows.Forms.DialogResult.Yes)
            {
                byte[] result = file.FILEPATH;
                try
                {
                    using (Stream stream = dialog.OpenFile())
                    {
                        stream.Write(result, 0, result.Length);
                        stream.Close();
                        MessageBox.Show("导出成功");
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message.ToString());
                }
            }
        }
Beispiel #7
0
        public static RuleFile GetFileRule(RuleFile.TypeFileRule type)
        {
            RuleFile res = null;

            switch (type)
            {
            case RuleFile.TypeFileRule.Date:
                res = new RuleFileDate();
                break;

            case RuleFile.TypeFileRule.Extension:
                res = new RuleFileExtension();
                break;

            case RuleFile.TypeFileRule.FileName:
                res = new RuleFileName();
                break;
            }

            if (res != null)
            {
                res.RuleType = (int)type;
            }

            return(res);
        }
        void DeleteAttach_MouseLeftButtonUp(object sender, System.Windows.Input.MouseButtonEventArgs e)
        {
            Image    image      = sender as Image;
            RuleFile rulesFiile = image.Tag as RuleFile;

            _currentRulesFiiles.Remove(rulesFiile);
            AddHyperlinkFileTiltle(_currentRulesFiiles);
        }
        /// <summary>
        /// 上传到服务器指定目录
        /// </summary>
        /// <param name="ServerPath"></param>
        /// <param name="EnclouseFolderPath"></param>
        /// <returns></returns>
        private bool UpLodeEnclouseFolder(string ServerPath)
        {
            bool   isresult = false;
            string SereverAndEnclousePath = "";
            //获取文件名
            string fileName = ServerPath.Substring(ServerPath.LastIndexOf("\\") + 1);

            //string getPath = FileManageHelper.GetPath();
            //SereverAndEnclousePath = getPath + fileName;
            SereverAndEnclousePath = System.IO.Path.Combine(FileManageHelper.GetPath(), fileName);
            FileStream fs = null;

            try
            {
                WebClient web = new WebClient();
                web.Credentials = CredentialCache.DefaultCredentials;
                //初始化上传文件  打开读取
                fs = new FileStream(ServerPath, FileMode.Open, FileAccess.Read);
                if (fs.Length / 1024 / 1024 > 20)
                {
                    MessageBox.Show("上传附件不支持超过20M大小的文件。");
                    isresult = false;
                }
                else
                {
                    BinaryReader br           = new BinaryReader(fs);
                    byte[]       btArray      = br.ReadBytes((int)fs.Length);
                    Stream       uplodeStream = web.OpenWrite(SereverAndEnclousePath, "PUT");
                    if (uplodeStream.CanWrite)
                    {
                        uplodeStream.Write(btArray, 0, btArray.Length);
                        uplodeStream.Flush();
                        uplodeStream.Close();
                        rulefile = new RuleFile();
                        //将文件以二进制形式存储到数据库中
                        rulefile.FILEPATH = btArray;
                        rulefile.FILENAME = fileName.Substring(0, fileName.LastIndexOf(".")).ToString();
                        //显示文件格式
                        rulefile.FILEFORM = fileName;
                        rulefile.FILESIZE = (fs.Length).ToString();
                        rulefile.FILETYPE = "制度管理";
                        //rulefile.MAINGUID = currentRegulate.GUID;//存外键
                        currentFileList.Add(rulefile);
                        isresult = true;
                    }
                }
            }
            catch (Exception ex)
            {
            }
            finally
            {
                fs.Close();//上传成功后,关闭流
            }

            return(isresult);
        }
Beispiel #10
0
        public NewRule(RuleFile rule)
        {
            InitializeComponent();
            this.rule = rule;

            rbtDate.IsEnabled      = false;
            rbtExtension.IsEnabled = false;
            rbtName.IsEnabled      = false;

            this.Owner = App.ActualInspectorDetail;
        }
Beispiel #11
0
        private Analyzer GetAnalyzerForRule(Rule rule)
        {
            var file = new RuleFile()
            {
                Rules = new List <Rule>()
                {
                    rule
                }
            };

            return(new Analyzer(AsaHelpers.GetPlatform(), file));
        }
        private Analyzer GetAnalyzerForRule(AsaRule rule)
        {
            var file = new RuleFile()
            {
                AsaRules = new List <AsaRule>()
                {
                    rule
                }
            };

            return(new AsaAnalyzer());
        }
Beispiel #13
0
        private void pnlNewRule_MouseUp(object sender, MouseButtonEventArgs e)
        {
            NewRule newRule = new NewRule();

            newRule.ShowDialog();

            if (newRule.rule != null)
            {
                RuleFile rule = newRule.rule;

                using (var db = new DataContext())
                {
                    db.AttachEntity(inspector);
                    inspector.Rules.Add(rule);

                    Boolean exist = true;

                    if (inspector.InspectorId == 0)
                    {
                        inspector.Name = txtName.Text;
                        inspector.Path = txtPath.Text;

                        if (rbtMoveSubDir.IsChecked.HasValue && rbtMoveSubDir.IsChecked.Value)
                        {
                            inspector.Action       = (int)Inspector.TypeActions.MoveSubDir;
                            inspector.SubDirAction = txtPathAction.Text;
                        }
                        else
                        {
                            inspector.Action       = (int)Inspector.TypeActions.DeleteFiles;
                            inspector.SubDirAction = String.Empty;
                        }

                        db.PersistEntity(inspector);
                        exist = false;
                    }

                    db.SaveChanges();

                    if (!exist)
                    {
                        App.Single.AddWork(inspector);
                    }
                    else
                    {
                        App.Single.UpdateWork(inspector);
                    }
                }

                RulesRefresh(rule, true);
            }
        }
Beispiel #14
0
        public Analyzer(PLATFORM platform, string?filterLocation = null)
        {
            config = new RuleFile();

            if (string.IsNullOrEmpty(filterLocation))
            {
                LoadEmbeddedFilters();
            }
            else
            {
                LoadFilters(filterLocation);
            }
            OsName = platform;
        }
        public void VerifyFileMonitorAsFile()
        {
            var RuleName = "AndRule";
            var andRule  = new AsaRule(RuleName)
            {
                Expression = "0 AND 1",
                ResultType = RESULT_TYPE.FILE,
                Flag       = ANALYSIS_RESULT_TYPE.FATAL,
                Clauses    = new List <Clause>()
                {
                    new Clause(Operation.Equals, "Path")
                    {
                        Label = "0",
                        Data  = new List <string>()
                        {
                            "TestPath1"
                        }
                    },
                    new Clause(Operation.IsTrue, "IsExecutable")
                    {
                        Label = "1"
                    }
                }
            };

            var analyzer = new AsaAnalyzer();

            var opts = new CompareCommandOptions(null, "SecondRun")
            {
                ApplySubObjectRulesToMonitor = true
            };

            var ruleFile = new RuleFile(new AsaRule[] { andRule });
            var results  = AttackSurfaceAnalyzerClient.AnalyzeMonitored(opts, analyzer, new MonitorObject[] { testPathOneObject }, ruleFile);

            Assert.IsTrue(results.Any(x => x.Value.Any(y => y.Identity == testPathOneObject.Identity && y.Rules.Contains(andRule))));

            opts = new CompareCommandOptions(null, "SecondRun")
            {
                ApplySubObjectRulesToMonitor = false
            };

            results = AttackSurfaceAnalyzerClient.AnalyzeMonitored(opts, analyzer, new MonitorObject[] { testPathOneObject }, ruleFile);

            Assert.IsFalse(results.Any(x => x.Value.Any(y => y.Identity == testPathOneObject.Identity && y.Rules.Contains(andRule))));
        }
Beispiel #16
0
        private void SaveRule()
        {
            Boolean  typeChoose = false;
            RuleFile ruleAux    = null;

            if (rbtDate.IsChecked.HasValue && rbtDate.IsChecked.Value)
            {
                ruleAux           = new RuleFileDate();
                ruleAux.RuleType  = (int)RuleFile.TypeFileRule.Date;
                ruleAux.ImagePath = @"/images/icon_ruleFileDate.png";

                typeChoose = true;
            }
            else if (rbtExtension.IsChecked.HasValue && rbtExtension.IsChecked.Value)
            {
                ruleAux           = new RuleFileExtension();
                ruleAux.RuleType  = (int)RuleFile.TypeFileRule.Extension;
                ruleAux.ImagePath = @"/images/icon_ruleFileExtension.png";

                typeChoose = true;
            }
            else if (rbtName.IsChecked.HasValue && rbtName.IsChecked.Value)
            {
                ruleAux           = new RuleFileName();
                ruleAux.RuleType  = (int)RuleFile.TypeFileRule.FileName;
                ruleAux.ImagePath = @"/images/icon_ruleFileName.png";

                typeChoose = true;
            }

            if (!typeChoose)
            {
                MessageBox.Show("Necesita especificar el tipo de la regla");
                return;
            }

            RuleControl rControl = (RuleControl)pnlExtensionControl.Children[0];

            rule = rControl.GetRule();

            rule.RuleType  = ruleAux.RuleType;
            rule.ImagePath = ruleAux.ImagePath;
            rule.Name      = txtName.Text;

            this.Close();
        }
Beispiel #17
0
        private void SetImageRule(RuleFile rule)
        {
            switch ((RuleFile.TypeFileRule)rule.RuleType)
            {
            case RuleFile.TypeFileRule.Date:
                rule.ImagePath = @"/images/icon_ruleFileDate.png";
                break;

            case RuleFile.TypeFileRule.Extension:
                rule.ImagePath = @"/images/icon_ruleFileExtension.png";
                break;

            case RuleFile.TypeFileRule.FileName:
                rule.ImagePath = @"/images/icon_ruleFileName.png";
                break;
            }
        }
        /// <summary>
        /// 附件列表,单选
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void chkCell_Click(object sender, RoutedEventArgs e)
        {
            CheckBox box       = sender as CheckBox;
            bool?    isChecked = box.IsChecked;

            if (!isChecked.HasValue)
            {
                return;
            }
            rulefile = box.DataContext as RuleFile;
            bool checkedState = isChecked.Value;

            rulefile.IsChecked = isChecked.Value;
            if (rulefile.IsChecked == true)
            {
                currentFileList.Add(rulefile);
            }
            else
            {
                currentFileList.Remove(rulefile);
            }

            #region 判断全选和保存状态
            int ischeckCount = (dgList.ItemsSource as List <RuleFile>).Count(p => p.IsChecked == true);
            if (ischeckCount == 1 || ischeckCount == 0)
            {
                btnSave.IsEnabled = true;
            }
            else
            {
                btnSave.IsEnabled = false;
            }
            foreach (RuleFile result in dgList.ItemsSource)
            {
                if (result.IsChecked != checkedState)
                {
                    this.chkAll.IsChecked = null;
                    return;
                }
            }
            chkAll.IsChecked = checkedState;
            #endregion
        }
        void UploadAttchFile(string p_filetype)
        {
            OpenFileDialog dlg = new OpenFileDialog();

            dlg.CheckFileExists = true;                  //检查文件是否存在
            dlg.Multiselect     = false;                 //是否允许多选,false表示单选
            dlg.CheckPathExists = true;
            dlg.Filter          = "All files (*.*)|*.*"; //文件过滤器
            if (dlg.ShowDialog() != true)
            {
                return;
            }
            Stream fileStream = dlg.OpenFile();

            if (fileStream == null)
            {
                return;
            }
            if (fileStream.Length / 1024 / 1024 > 20)
            {
                MessageBox.Show("上传附件不支持超过20M大小的文件。");
                return;
            }
            byte[] arrFile = new byte[fileStream.Length];
            fileStream.Read(arrFile, 0, arrFile.Length);
            RuleFile rulesFiile = new RuleFile();

            rulesFiile.GUID     = CO_IA.Client.Utility.NewGuid();
            rulesFiile.MAINGUID = _currentTask.CHILDGUID;
            rulesFiile.FILEPATH = arrFile;
            rulesFiile.FILEFORM = dlg.FileName.ToString().Substring(dlg.FileName.ToString().LastIndexOf('.') + 1);
            rulesFiile.FILENAME = dlg.SafeFileName;
            rulesFiile.FILESIZE = fileStream.Length.ToString();
            rulesFiile.FILETYPE = p_filetype; //SameAsTaskFile 一般任务附件 IntertaskFile 干扰任务附件
            if (IsContainsFile(rulesFiile))
            {
                MessageBox.Show("该附件已存在,请重新选择!");
                return;
            }
            _currentRulesFiiles.Add(rulesFiile);
            AddHyperlinkFileTiltle(_currentRulesFiiles);
        }
 /// <summary>
 /// 下载文件
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void DownloadFile_Click_1(object sender, RoutedEventArgs e)
 {
     try
     {
         RuleFile summarize = (sender as System.Windows.Documents.Hyperlink).Tag as RuleFile;
         if (summarize == null)
         {
             return;
         }
         string         docstr         = summarize.FILEFORM.Substring(summarize.FILEFORM.LastIndexOf('.'));
         string         serviceDocPath = FileManageHelper.ByteConvertDocService(summarize.FILEPATH, summarize.FILEFORM);
         WebClient      webClient      = new WebClient();
         SaveFileDialog dlg            = new SaveFileDialog();
         dlg.FileName = "文件下载";
         //dlg.Reset();
         if (docstr == ".doc" || docstr == ".docx")
         {
             dlg.Filter += "Word 文件|*.doc;*.docx";
         }
         else if (docstr == ".xls" || docstr == ".xlsx")
         {
             dlg.Filter += "Excel 文件|*.xls;*.xlsx";
         }
         // dlg.Filter = "Office Files|*.doc;*.docx;*.xls;*.xlsx";
         if (dlg.ShowDialog() == true)
         {
             try
             {
                 webClient.DownloadFile(serviceDocPath, dlg.FileName);
                 MessageBox.Show("文件下载成功!");
             }
             catch (Exception)
             {
                 throw;
             }
         }
     }
     catch (Exception ex)
     {
         //MessageBox.Show(ex.GetExceptionMessage());
     }
 }
Beispiel #21
0
        private void pnlDeleteRule_MouseUp(object sender, MouseButtonEventArgs e)
        {
            if (lstVRules.SelectedIndex != -1)
            {
                RuleFile ruleSelected = (RuleFile)lstVRules.SelectedValue;

                using (var db = new DataContext())
                {
                    db.RemoveEntity(ruleSelected);
                    db.SaveChanges();

                    App.Single.UpdateWork(inspector);
                }

                RulesRefresh(ruleSelected);
            }
            else
            {
                System.Windows.MessageBox.Show("Por favor, seleccione una regla de la lista");
            }
        }
Beispiel #22
0
        public void LoadEmbeddedFilters()
        {
            try
            {
                var assembly     = typeof(FileSystemObject).Assembly;
                var resourceName = "AttackSurfaceAnalyzer.analyses.json";

                using (Stream stream = assembly.GetManifestResourceStream(resourceName))
                    using (StreamReader reader = new StreamReader(stream))
                    {
                        config = JsonSerializer.Deserialize <RuleFile>(reader.ReadToEnd());
                        Log.Information(Strings.Get("LoadedAnalyses"), "Embedded");
                    }
                if (config == null)
                {
                    Log.Debug("No filters today.");
                    return;
                }
                DumpFilters();
            }
            catch (Exception e) when(
                e is ArgumentNullException ||
                e is ArgumentException ||
                e is FileLoadException ||
                e is FileNotFoundException ||
                e is BadImageFormatException ||
                e is NotImplementedException)
            {
                config = null;
                Log.Debug("Could not load filters {0} {1}", "Embedded", e.GetType().ToString());

                // This is interesting. We shouldn't hit exceptions when loading the embedded resource.
                Dictionary <string, string> ExceptionEvent = new Dictionary <string, string>();

                ExceptionEvent.Add("Exception Type", e.GetType().ToString());
                AsaTelemetry.TrackEvent("EmbeddedAnalysesFilterLoadException", ExceptionEvent);
            }
        }
Beispiel #23
0
 public Analyzer(PLATFORM platform, RuleFile filters)
 {
     OsName = platform;
     config = filters;
 }
        bool IsContainsFile(RuleFile p_rulesFiile)
        {
            var list = _currentRulesFiiles.Where(p => p.FILESIZE == p_rulesFiile.FILESIZE && p.FILENAME == p_rulesFiile.FILENAME && p.FILEFORM == p_rulesFiile.FILEFORM).ToList();

            return(list.Count > 0 ? true : false);
        }
Beispiel #25
0
        public void SetRule(RuleFile rule)
        {
            this.rule = (RuleFileName)rule;

            txtNombre.Text = this.rule.NamePattern;
        }
        private void dgList_MouseLeftButtonUp_1(object sender, MouseButtonEventArgs e)
        {
            #region 加载基本信息
            rulefile = new RuleFile();
            rulefile = dgList.SelectedItem as RuleFile;
            if (rulefile == null)
            {
                return;        //防止单击空白或标题等触发该事件
            }
            isAddOrUpdate = 1; //可以进行修改操作
            if (rulefile.IsChecked == true)
            {
                rulefile.IsChecked = false;
                currentFileList.Remove(rulefile);
            }
            else
            {
                rulefile.IsChecked = true;
                currentFileList.Add(rulefile);
            }
            bool checkedState = rulefile.IsChecked;

            #endregion

            #region //预览文件
            //
            string isxpsPath = FileManageHelper.GetPath() + rulefile.FILEFORM.Substring(0, rulefile.FILEFORM.LastIndexOf(".")).ToString() + ".xps";
            if (System.IO.File.Exists(isxpsPath))
            {
                //已经存xps文件,直接加载
                using (XpsDocument xpsDoc = new XpsDocument(isxpsPath, FileAccess.Read))
                {
                    var fsxps = xpsDoc.GetFixedDocumentSequence();
                    xpsDocViewr.Document = fsxps;
                }
            }
            else
            {
                //创建xps文件,启动进程耗时
                string serviceDocPathXPS = FileManageHelper.ByteConvertDocService(rulefile.FILEPATH, rulefile.FILEFORM);
                string xpsFilePath       = serviceDocPathXPS.Substring(0, serviceDocPathXPS.LastIndexOf(".")).ToString() + ".xps";
                var    convertResults    = OfficeToXps.ConvertToXps(serviceDocPathXPS, ref xpsFilePath);
                switch (convertResults.Result)
                {
                case ConversionResult.OK:
                    try
                    {
                        using (XpsDocument xpsDoc = new XpsDocument(xpsFilePath, FileAccess.Read))
                        {
                            var fsxps = xpsDoc.GetFixedDocumentSequence();
                            xpsDocViewr.Document = fsxps;
                        }
                    }
                    catch (Exception ex)
                    {
                    }
                    break;

                case ConversionResult.InvalidFilePath:
                    // 处理文件路径错误或文件不存在
                    break;

                case ConversionResult.UnexpectedError:

                    break;

                case ConversionResult.ErrorUnableToInitializeOfficeApp:
                    // Office 未安装会出现这个异常
                    break;

                case ConversionResult.ErrorUnableToOpenOfficeFile:
                    // 文件被占用会出现这个异常
                    break;

                case ConversionResult.ErrorUnableToAccessOfficeInterop:
                    // Office 未安装会出现这个异常
                    break;

                case ConversionResult.ErrorUnableToExportToXps:
                    // 微软 OFFICE Save As PDF 或 XPS  插件未安装异常
                    break;
                }
            }
            #endregion

            #region 判断全选和保存状态
            int ischeckCount = (dgList.ItemsSource as List <RuleFile>).Count(p => p.IsChecked == true);
            if (ischeckCount == 1 || ischeckCount == 0)
            {
                btnSave.IsEnabled = true;
                isAddOrUpdate     = 1;//可以进行修改操作
            }
            else
            {
                btnSave.IsEnabled = false;
                isAddOrUpdate     = 0;
            }
            foreach (RuleFile result in dgList.ItemsSource)
            {
                if (result.IsChecked != checkedState)
                {
                    this.chkAll.IsChecked = null;
                    return;
                }
            }
            chkAll.IsChecked = checkedState;
            #endregion
        }
Beispiel #27
0
        public void SetRule(RuleFile rule)
        {
            this.rule = (RuleFileExtension)rule;

            txtExtension.Text = this.rule.ExtensionPattern;
        }
        private void InitRulesAndTargets(string referencesDirectory, string ruleLocation, string targetLocation)
        {
            result = new RuleResultData();
            ExceptionCollection exceptionCollection = FxCopOM.Initialize();
            if ((exceptionCollection != null) && (exceptionCollection.Count > 0))
            {
                foreach (Exception exception in exceptionCollection)
                {
                    Console.WriteLine("* " + exception.Message);
                    Console.WriteLine(exception.StackTrace);
                }
            }

            FxCopOM.Project = new Project();
            FxCopOM.Project.Options.SharedProject = false;

            FxCopOM.Project.Targets.AddReferenceDirectory(referencesDirectory);
                
            TargetFile targetFile = new TargetFile(targetLocation, FxCopOM.Project.Targets);
            FxCopOM.Engines.LoadTargets(targetFile);
            FxCopOM.Project.Targets.Add(targetFile);
                
            RuleFile ruleFile = new RuleFile(ruleLocation, FxCopOM.Project.RuleFiles);
            ruleFile.CheckAllChildren(true);
            FxCopOM.Project.RuleFiles.Add(ruleFile);

            FxCopOM.Project.Options.Stylesheet = string.Empty;
            m_ruleFile = ruleFile;
            m_targetFile = targetFile;
        }
 public MyViewModel(RuleFile ruleFile)
 {
     RuleFile = ruleFile;
 }