private void SaveClientResultsToDatabase(CrawlerResultsDTO resultsDto) { modelReference.AppendTextToConsole("Crawling results from" + resultsDto.ProcessedSeed.SeedDomainName + " acquired. Saving onto DB..."); var dbContext = new Crawler_DBEntities(); var dbBatch = Mapper.Map<Batch>(resultsDto.BatchInfo); dbBatch.CrawlerConnectionId = resultsDto.ConnectionInfo.Id; dbContext.Batches.Add(dbBatch); if (resultsDto.InternalLinksList != null) { foreach (var internalLink in resultsDto.InternalLinksList) { var dbLink = ConvertInternalLinkDTOtoDB(internalLink); dbContext.InternalLinks.Add(dbLink); } } if (resultsDto.ExternalLinksList != null) { foreach (var externalLink in resultsDto.ExternalLinksList) { var dbLink = ConvertExternalLinkDTOtoDB(externalLink); dbContext.ExternalLinks.Add(dbLink); } } if (resultsDto.BadLinksList != null) { foreach (var badLink in resultsDto.BadLinksList) { var dbLink = ConvertBadLinkDTOtoDB(badLink); dbContext.BadLinks.Add(dbLink); } } dbContext.SaveChanges(); }
public ClientCrawlerInfo[] Join(ClientCrawlerInfo clientCrawlerNewInfo) { clientCrawlerNewInfo.SavedCallback = OperationContext.Current.GetCallbackChannel<ICrawlerClientCallback>(); ConnectedClientCrawlers.Add(clientCrawlerNewInfo); var dbContext = new Crawler_DBEntities(); var dbConnInfo = SeedModel.DataAccessService.ConvertToCrawlerConnection(clientCrawlerNewInfo); dbConnInfo.ConnectionTime = DateTime.Now; dbContext.CrawlerConnections.Add(dbConnInfo); dbContext.SaveChanges(); return ConnectedClientCrawlers.ToArray(); }