public void ImportTextFile() { PhishDataType Type = PhishDataType.Undefined; if (radPhishing.Checked) { Type = PhishDataType.Negative; } if (radTrusted.Checked) { Type = PhishDataType.Positive; } List <Resource> Resources = new List <Resource>(); var lines = File.ReadLines(dlgText.FileName); foreach (var line in lines) { Resource res = new Resource(line); res.ItemType = Type; Resources.Add(res); } Repository.AddMultiple(Resources); }
public void LoadGrid(PhishDataType Type) { List <FrequentItem> Items = Repository .Find <FrequentItem>(s => s.ItemType == Type) .ToList(); grdMain.Rows.Clear(); foreach (var item in Items) { grdMain.Rows.Add(item.UID, item.Term, item.Frequency.ToString()); } }
public void FrequentItemCounter(PhishDataType Type, int FrequentItems_MinimumLength, int FrequentItems_Confidence) { List <string> Urls; List <String> UrlsCleaned = new List <string>(); Dictionary <string, int> dictionary = new Dictionary <string, int>(); Urls = Repository .Find <Resource>(s => s.ItemType == Type) .Select(a => a.Url) .ToList(); foreach (var record in Urls) { String result = Regex.Replace(record, @"\p{P}", " "); result = Regex.Replace(result, @"[\d-]", " "); result = result.Replace("=", " "); UrlsCleaned.Add(result); } foreach (var item in UrlsCleaned) { var line = item.ToLower().Trim(); var words = line.Split(' '); foreach (var word in words) { if (String.IsNullOrEmpty(word) || word.Length < FrequentItems_MinimumLength) { continue; } if (!dictionary.ContainsKey(word)) { dictionary.Add(word, 1); } else { dictionary[word] = dictionary[word] + 1; } } } List <FrequentItem> FrequentItems = Repository .Find <FrequentItem>(s => s.ItemType == Type) .ToList(); List <FrequentItem> NewFrequentItems = new List <FrequentItem>(); List <FrequentItem> UpdateFrequentItems = new List <FrequentItem>(); foreach (var item in dictionary) { if (item.Value < FrequentItems_Confidence) { continue; } if (FrequentItems.Any(s => s.Term == item.Key)) { FrequentItem UItem = FrequentItems.Where(s => s.Term == item.Key).FirstOrDefault(); UItem.MinimumFrequency = FrequentItems_MinimumLength; UItem.Frequency = item.Value; UItem.ItemType = Type; UpdateFrequentItems.Add(UItem); } else { FrequentItem UItem = new FrequentItem(); UItem.Term = item.Key; UItem.ItemType = Type; UItem.MinimumFrequency = FrequentItems_MinimumLength; UItem.Frequency = item.Value; NewFrequentItems.Add(UItem); } } Repository.AddMultiple(NewFrequentItems); Repository.UpdateMultiple(UpdateFrequentItems); }