private ActivityLoggedModelViewModel CreateActivityViewModel(BsonDocument doc, string modelName) { var model = new ActivityLoggedModelViewModel { Simple = ProcessBsonDocumentForSimpleElement(doc, modelName), Complex = ProcessBsonDocumentForComplex(doc, modelName) }; if (doc.Elements.Any(x => x.Value.IsBsonArray)) { model = ProcessBsonDocumentForCollections(model, doc); } return(model); }
private ActivityLoggedModelViewModel ProcessBsonDocumentForCollections(ActivityLoggedModelViewModel result, BsonDocument doc) { var collections = new List <ActivityLoggedModelViewModel>(); foreach (var element in doc.Elements.Where(x => x.Value.IsBsonArray).ToList()) { foreach (var ite in element.Value.AsBsonArray.ToList()) { var item = CreateActivityViewModel(ite.ToBsonDocument(), element.Name); collections.Add(item); } } result.Collections = collections; return(result); }