Example #1
0
        private void BtnDelete_Click(object sender, RoutedEventArgs e)
        {
            CrawlingConfig      config      = (CrawlingConfig)DataContext;
            CrawlingStartingUrl startingUrl = (CrawlingStartingUrl)((Control)sender).DataContext;

            config.StartingUrls.Remove(startingUrl);
        }
Example #2
0
        private void BtnDelete_Click(object sender, RoutedEventArgs e)
        {
            CrawlingConfig config = (CrawlingConfig)DataContext;
            CrawlingRule   rule   = (CrawlingRule)((Control)sender).DataContext;

            config.Rules.Remove(rule);
        }
        private void BtnDelete_Click(object sender, RoutedEventArgs e)
        {
            ImageButton    button = (ImageButton)sender;
            CrawlingConfig config = (CrawlingConfig)button.DataContext;

            Model.Remove(config);
        }
Example #4
0
        public static bool StartEditing(Window parent, CrawlingConfig config, CrawlingRule rule)
        {
            CrawlingRuleEditor view = new CrawlingRuleEditor(config, rule);

            view.Owner = parent;
            view.ShowDialog();

            return(view.ApplyChanges);
        }
        private void BtnMoveUp_Click(object sender, RoutedEventArgs e)
        {
            CrawlingConfig config = (CrawlingConfig)DataContext;
            CrawlingBucket bucket = (CrawlingBucket)((Control)sender).DataContext;
            int            index  = config.Buckets.IndexOf(bucket);

            if (index > 0)
            {
                config.Buckets.Move(index, index - 1);
            }
        }
Example #6
0
        private void BtnMoveDown_Click(object sender, RoutedEventArgs e)
        {
            CrawlingConfig config = (CrawlingConfig)DataContext;
            CrawlingRule   rule   = (CrawlingRule)((Control)sender).DataContext;
            int            index  = config.Rules.IndexOf(rule);

            if (index < config.Rules.Count - 1)
            {
                config.Rules.Move(index, index + 1);
            }
        }
        private void BtnMoveDown_Click(object sender, RoutedEventArgs e)
        {
            ImageButton    button = (ImageButton)sender;
            CrawlingConfig config = (CrawlingConfig)button.DataContext;
            int            index  = Model.IndexOf(config);

            if (index < Model.Count - 1)
            {
                Model.Move(index, index + 1);
            }
        }
Example #8
0
        private void BtnAdd_Click(object sender, RoutedEventArgs e)
        {
            CrawlingConfig config = (CrawlingConfig)DataContext;

            config.StartingUrls.Add(new CrawlingStartingUrl
            {
                Guid  = Guid.NewGuid(),
                Name  = "New URL",
                Value = new Uri("http://www.somedomain.com/")
            });
        }
        private void BtnEdit_Click(object sender, RoutedEventArgs e)
        {
            ImageButton    button = (ImageButton)sender;
            CrawlingConfig config = (CrawlingConfig)button.DataContext;
            CrawlingConfig clone  = CrawlingConfigurationSerializer.Clone(config);

            if (CrawlingConfigEditor.StartEditing(this, clone))
            {
                int index = Model.IndexOf(config);
                Model[index] = clone;
            }
        }
Example #10
0
        private void BtnEdit_Click(object sender, RoutedEventArgs e)
        {
            CrawlingConfig config = (CrawlingConfig)DataContext;
            CrawlingRule   rule   = (CrawlingRule)((Control)sender).DataContext;
            CrawlingRule   clone  = CrawlingConfigurationSerializer.Clone(rule);

            if (CrawlingRuleEditor.StartEditing(Window.GetWindow(this), config, clone))
            {
                int index = config.Rules.IndexOf(rule);
                config.Rules[index] = clone;
            }
        }
        private void BtnAdd_Click(object sender, RoutedEventArgs e)
        {
            CrawlingConfig config = (CrawlingConfig)DataContext;

            config.Buckets.Add(new CrawlingBucket
            {
                Guid          = Guid.NewGuid(),
                Name          = "New bucket",
                Description   = "",
                NbThreads     = 1,
                NbRetry       = 2,
                LimitRequests = 0
            });
        }
        private void BtnDelete_Click(object sender, RoutedEventArgs e)
        {
            CrawlingConfig config = (CrawlingConfig)DataContext;
            CrawlingBucket bucket = (CrawlingBucket)((Control)sender).DataContext;

            config.Buckets.Remove(bucket);

            foreach (CrawlingRule rule in config.Rules)
            {
                if (rule.TargetBucket == bucket)
                {
                    rule.TargetBucket = null;
                }
            }
        }
Example #13
0
        private void BtnAdd_Click(object sender, RoutedEventArgs e)
        {
            CrawlingConfig config = (CrawlingConfig)DataContext;
            CrawlingRule   rule   = new CrawlingRule
            {
                Guid         = Guid.NewGuid(),
                Name         = "New rule",
                Description  = "",
                TargetBucket = config.Buckets.FirstOrDefault()
            };

            if (CrawlingRuleEditor.StartEditing(Window.GetWindow(this), config, rule))
            {
                config.Rules.Add(rule);
            }
        }
Example #14
0
        private void EditCrawlingConfigs_Executed(object sender, ExecutedRoutedEventArgs e)
        {
            ObservableCollection <CrawlingConfig> clone = new ObservableCollection <CrawlingConfig>(Model.CrawlingConfigs.Select(CrawlingConfigurationSerializer.Clone));

            if (CrawlingConfigCollectionEditor.StartEditing(this, clone))
            {
                CrawlingConfig previousSelectedConfig = Model.SelectedConfig;
                Model.CrawlingConfigs.Clear();
                Model.CrawlingConfigs.AddRange(clone);
                ConfigurationHelper.SaveCrawlingConfigs(Model.CrawlingConfigs);

                CrawlingConfig newSelectedConfig = previousSelectedConfig == null ? null :
                                                   Model.CrawlingConfigs.FirstOrDefault(x => x.Guid == previousSelectedConfig.Guid);

                Model.SelectedConfig = newSelectedConfig ?? Model.CrawlingConfigs.FirstOrDefault();
            }
        }
        private void BtnEdit_Click(object sender, RoutedEventArgs e)
        {
            CrawlingConfig config = (CrawlingConfig)DataContext;
            CrawlingBucket bucket = (CrawlingBucket)((Control)sender).DataContext;
            CrawlingBucket clone  = CrawlingConfigurationSerializer.Clone(bucket);

            if (CrawlingBucketEditor.StartEditing(Window.GetWindow(this), clone))
            {
                int index = config.Buckets.IndexOf(bucket);
                config.Buckets[index] = clone;

                foreach (CrawlingRule rule in config.Rules)
                {
                    if (rule.TargetBucket == bucket)
                    {
                        rule.TargetBucket = clone;
                    }
                }
            }
        }
        private void BtnAdd_Click(object sender, RoutedEventArgs e)
        {
            CrawlingConfig config = new CrawlingConfig
            {
                Guid        = Guid.NewGuid(),
                Name        = "New configuration",
                Description = ""
            };

            config.Buckets.Add(new CrawlingBucket
            {
                Guid        = Guid.NewGuid(),
                Name        = "Bucket",
                Description = "",
                NbThreads   = 1,
                NbRetry     = 2
            });

            if (CrawlingConfigEditor.StartEditing(this, config))
            {
                Model.Add(config);
            }
        }
        static DesignTimeModels()
        {
            CrawlingBucket bucket = new CrawlingBucket
            {
                Name          = "Example.com",
                Description   = "",
                NbThreads     = 2,
                NbRetry       = 2,
                LimitRequests = 100
            };

            CrawlingCondition condition = new CrawlingCondition
            {
                FieldType      = CrawlingConditionFieldType.Host,
                ComparisonType = CrawlingConditionComparisonType.Equals,
                Value          = "www.example.com"
            };

            CrawlingRule rule = new CrawlingRule
            {
                Name         = "Example.com",
                Description  = "",
                Behavior     = ResourceBehavior.FollowAllReferences,
                TargetBucket = bucket
            };

            rule.Conditions.Add(condition);

            CrawlingBucket = new CrawlingBucket
            {
                Name          = "Bucket name",
                Description   = "Bucket description",
                LimitRequests = 0,
                NbThreads     = 2,
                NbRetry       = 1
            };

            CrawlingBucket.HostMappings.Add(new CrawlingHostMapping
            {
                Host      = "www.example.com",
                IPAddress = IPAddress.Parse("127.0.0.1")
            });
            ProcessingBucketCollection = new ObservableCollection <CrawlingBucket> {
                CrawlingBucket, CrawlingBucket
            };

            CrawlingCondition = new CrawlingCondition
            {
                ComparisonType = CrawlingConditionComparisonType.Equals,
                FieldType      = CrawlingConditionFieldType.Scheme,
                Value          = "http"
            };

            ProcessingConditionCollection = new ObservableCollection <CrawlingCondition>
            {
                CrawlingCondition,
                new CrawlingCondition
                {
                    ComparisonType = CrawlingConditionComparisonType.Equals,
                    FieldType      = CrawlingConditionFieldType.Host,
                    Value          = "www.example.com"
                }
            };

            CrawlingRule = new CrawlingRule
            {
                Name         = "Rule name",
                Description  = "Rule description",
                Behavior     = ResourceBehavior.FollowAllReferences,
                TargetBucket = CrawlingBucket
            };

            CrawlingRule.Conditions.AddRange(ProcessingConditionCollection);

            ProcessingRuleCollection = new ObservableCollection <CrawlingRule> {
                CrawlingRule, CrawlingRule
            };

            CrawlingConfig = new CrawlingConfig
            {
                Name        = "Processing configuration name",
                Description = "Processing configuration description",
            };

            CrawlingConfig.Buckets.Add(bucket);
            CrawlingConfig.Rules.Add(rule);
            CrawlingConfig.StartingUrls.Add(new CrawlingStartingUrl
            {
                Name  = "SiteMap",
                Value = new Uri("http://www.exaple.com/SiteMap.axd?UrlEncode=false")
            });
            ProcessingConfigurationCollection = new ObservableCollection <CrawlingConfig> {
                CrawlingConfig, CrawlingConfig, CrawlingConfig
            };

            FileViewModel = new FileViewModel(new CrawlingContext(), new DispatcherQueue(Dispatcher.CurrentDispatcher));
            FileViewModel.Model.Resources.Add(new Resource(new Uri("http://www.google.ca"), ResourceBehavior.FollowAllReferences));


            ReportConfig = new ReportConfig
            {
                Guid        = Guid.NewGuid(),
                Name        = "Resources",
                Description = "Some description",
                Type        = ReportType.ListResources
            };
            ReportConfig.Columns.AddRange(new[]
            {
                new ReportConfigColumn
                {
                    Name  = "Starting time",
                    Path  = "Resource.TimeStart",
                    Width = 20
                },
                new ReportConfigColumn
                {
                    Name  = "Content type",
                    Path  = "Resource.Headers.ContentType",
                    Width = 15
                },
                new ReportConfigColumn
                {
                    Name  = "Status code",
                    Path  = "Resource.HttpStatusCode",
                    Width = 15
                },
                new ReportConfigColumn
                {
                    Name = "URL",
                    Path = "Resource.URL.AbsoluteUri"
                }
            });
            ReportCollection = new ObservableCollection <ReportConfig>
            {
                ReportConfig,
                new ReportConfig {
                    Name = "References", Type = ReportType.ListResources
                }
            };

            MainViewModel = new MainViewModel();
            MainViewModel.Files.Add(FileViewModel);
        }
Example #18
0
 public CrawlingRuleEditor(CrawlingConfig config, CrawlingRule rule)
 {
     DataContext = rule;
     Config      = config;
     InitializeComponent();
 }
Example #19
0
 public CrawlingConfigEditor(CrawlingConfig config)
 {
     DataContext = config;
     Model       = config;
     InitializeComponent();
 }