Exemple #1
0
        // Get all the current documents
        public DocumentsViewModel GetDocumentsViewModel() // 7000ms
        {
            // 1000ms
            var documentIds =
                Data.Documents
                .Where(x => x.Archived == false).Select(x => new { x.DocumentId });

            var documentsViewModel = new DocumentsViewModel();

            foreach (var documentId in documentIds)
            {
                // 6,516ms
                documentsViewModel
                .Documents
                .Add(
                    GetDocumentViewModel(documentId.DocumentId.GetValueOrDefault())
                    ); // Will run at least a couple of queries on every non-archived doc in the system!
            }

            return(documentsViewModel);
        }
Exemple #2
0
        // Get all the current documents :: 1.062ms
        public DocumentsViewModel GetDocumentsViewModel()
        {
            // prefetch all documents
            var documents = Data.Documents;//1sec

            var documentIds =
                documents
                .Where(x => x.Archived == false).Select(x => new { x.DocumentId });

            // create doc-view model given docs already got ...
            var documentsViewModel = new DocumentsViewModel();

            foreach (var id in documentIds)// 78ms
            {
                var documentId = id.DocumentId.GetValueOrDefault();

                // get document view model using pre-fetched documents
                var documentViewModel = GetDocumentViewModel(documentId, documents);

                documentsViewModel.Documents.Add(documentViewModel);
            }

            return(documentsViewModel);
        }