private void AddDocuments(InterlexCrawlerEntities.DocumentGroup newDocumentGroup, DocumentGroupModel crawleredDocumentGroup) { var documentOrder = 1; foreach (var crawledDocument in crawleredDocumentGroup.Documents) { var fileLower = crawledDocument.Name.ToLower(); var document = new InterlexCrawlerEntities.Document(); document.DocumentName = fileLower; document.Identifier = crawledDocument.Identifier; document.DocumentFormat = crawledDocument.Format; document.Operation = (int)crawledDocument.Operation; document.DocumentOrder = documentOrder; document.Url = crawledDocument.Url; document.Md5 = crawledDocument.Md5; newDocumentGroup.Documents.Add(document); documentOrder++; } }
private void UpdateDocumentGroup(DocumentGroupModel crawledDocumentGroup, DocumentGroupModel documentGroupFromDatabase) { using (var context = new InterlexCrawlerEntities()) { var documentGroupDb = (from dg in context.DocumentGroups where dg.Identifier == documentGroupFromDatabase.Identifier select dg).Single(); context.Entry(documentGroupDb).Collection(x => x.Documents).Load(); documentGroupDb.Operation = (int)DocumentGroupModelOperation.Upd; documentGroupDb.DataContent = Zip.DocumentGroup(crawledDocumentGroup); documentGroupDb.DocumentGroupDate = DateTime.UtcNow.ToString("yyyy-MM-ddTHH:mm:ss"); documentGroupDb.Lang = crawledDocumentGroup.TwoLetterLanguage; var documentOrder = 0; foreach (var crawledDocument in crawledDocumentGroup.Documents) { if (crawledDocument.Operation == DocumentModelOperation.Add) { string fileLower = crawledDocument.Name.ToLower(); var document = new InterlexCrawlerEntities.Document(); document.DocumentName = fileLower; document.Identifier = crawledDocument.Identifier; document.DocumentFormat = crawledDocument.Format; document.Operation = (int)crawledDocument.Operation; document.DocumentOrder = documentOrder; document.Url = crawledDocument.Url; document.Md5 = crawledDocument.Md5; documentGroupDb.Documents.Add(document); } else if (crawledDocument.Operation == DocumentModelOperation.Upd) { var dbDocument = documentGroupDb.Documents.Where(x => x.DocumentName == crawledDocument.Name).FirstOrDefault(); dbDocument.Operation = (int)crawledDocument.Operation; dbDocument.DocumentOrder = documentOrder; dbDocument.DocumentFormat = crawledDocument.Format; dbDocument.Url = crawledDocument.Url; dbDocument.Md5 = crawledDocument.Md5; } documentOrder++; } foreach (var documenInfo in documentGroupFromDatabase.Documents) { if (documenInfo.Operation == DocumentModelOperation.Del) { var dbDocument = documentGroupDb.Documents.Where(x => x.DocumentName == documenInfo.Name).FirstOrDefault(); if (dbDocument != null) { dbDocument.Operation = (int)documenInfo.Operation; } } } context.SaveChanges(); context.PChangeOperationStatus(documentGroupDb.Identifier, (int)DocumentGroupModelOperation.Upd, "DatabaseDocumentManager", null); } }