private void _btnInitSubdomain_Click(object sender, EventArgs e) { DomainController domainController = new DomainController(); SubdomainController subdomainController = new SubdomainController(); DomainFindResult findResult = domainController.FindAll(); List <string> knownSubdomains = new List <string>(); List <string> knowndbSubdomains = new List <string>(); foreach (Domain domainItem in findResult.Items) { string domain = domainItem.DomainName; string existingFile = Path.Combine(@"C:\Alternative\Existing", domain.Replace(".", "") + ".txt"); if (File.Exists(existingFile)) { knownSubdomains = File.ReadAllLines(existingFile).ToList(); } knownSubdomains = knownSubdomains.Select(x => x.Replace("." + domainItem.DomainName, "")).ToList(); SubdomainFindResult subDomainFindResult = subdomainController.FindByDomain(domainItem.DomainId); if (subDomainFindResult.Error) { MessageBox.Show(subDomainFindResult.Message); } knowndbSubdomains = subDomainFindResult.Items.Select(x => x.SubdomainName).ToList(); List <string> inList1ButNotList2 = (from o in knownSubdomains join p in knowndbSubdomains on o equals p into t from od in t.DefaultIfEmpty() where od == null select o).ToList <string>(); foreach (string newItem in inList1ButNotList2) { Subdomain sub = new Subdomain(); sub.DomainId = domainItem.DomainId; sub.DateFound = DateTime.Now; sub.FoundType = "scanner"; sub.SubdomainName = newItem; subdomainController.Insert(sub); } } }
private DomainFindResult GenericFind(string whereClause, List <DbField> parameters) { DomainFindResult result = new DomainFindResult(); try { DbAccessor connection = new DbAccessor(); AddAccessorSelectors(connection); if (!String.IsNullOrEmpty(whereClause)) { connection.SetWhereClause(whereClause, parameters); } List <string> tables = new List <string>(); tables.Add("domain"); DataView dataView = connection.FindWhere(tables); foreach (DataRowView row in dataView) { Clark.Domain.Data.Domain domain = DataRowToDomain(row); result.Items.Add(domain); } } catch (Exception ex) { result.Error = true; result.Message = ex.Message; if (ex.InnerException != null) { result.Message += " Inner: " + ex.InnerException.Message; } } return(result); }