Ejemplo n.º 1
0
        public static List <TreeViewItemModel> ToKendoTreeViewItemModelList_todo(this DocumentTreeModels documents)
        {
            List <Kendo.Mvc.UI.TreeViewItemModel> result = null;

            if (documents?.Documents == null || !documents.Documents.Any())
            {
                return(null);
            }

            var topMenuItems = DocumentTreeModelsExtensions.GetChildItems(documents, 0);

            result = new List <TreeViewItemModel>();

            foreach (var topMenuItem in topMenuItems)
            {
                TreeViewItemModel topMenuTreeItem = DocumentTreeModelsExtensions.CreateKendoTreeViewModel(topMenuItem);
                result.Add(topMenuTreeItem);

                if (!topMenuItem.IsDocument)
                {
                    var children = DocumentTreeModelsExtensions.GetChildItems(documents, topMenuItem.Id);
                    if (children != null && children.Any())
                    {
                        DocumentTreeModelsExtensions.ProcessSubDocuments(documents, children, ref topMenuTreeItem);
                    }
                }
            }
            return(result);
        }
        private static DocumentTreeModels CreateDocumentsNoSubItems2()
        {
            //a combination of top level documents (parent ID of 0) and documents with a parent that is NOT 0
            DocumentTreeModels result   = new DocumentTreeModels();
            DocumentTreeModel  document = new DocumentTreeModel
            {
                Id         = 1,
                Name       = "Development Strategy.docx",
                IsDocument = true,
                ParentId   = 99
            };

            result.Documents.Add(document);
            document = new DocumentTreeModel
            {
                Id         = 2,
                Name       = "Coding standards.docx",
                IsDocument = true,
                ParentId   = 99
            };
            result.Documents.Add(document);
            document = new DocumentTreeModel
            {
                Id         = 3,
                Name       = "Testing Strategy.docx",
                IsDocument = true,
                ParentId   = 0
            };
            result.Documents.Add(document);
            return(result);
        }
        private static DocumentTreeModels CreateDocumentsNoSubItems()
        {
            // all the documents are top level documents with a parent ID of 0

            DocumentTreeModels result   = new DocumentTreeModels();
            DocumentTreeModel  document = new DocumentTreeModel
            {
                Id         = 1,
                Name       = "Development Strategy.docx",
                IsDocument = true,
                ParentId   = 0
            };

            result.Documents.Add(document);
            document = new DocumentTreeModel
            {
                Id         = 2,
                Name       = "Coding standards.docx",
                IsDocument = true,
                ParentId   = 0
            };
            result.Documents.Add(document);
            document = new DocumentTreeModel
            {
                Id         = 3,
                Name       = "Testing Strategy.docx",
                IsDocument = true,
                ParentId   = 0
            };
            result.Documents.Add(document);
            return(result);
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Convert a list of documents into a Kendo UI tree view for display on the DocumentManager.cshtml page.
        /// </summary>
        /// <param name="documents"></param>
        /// <returns></returns>
        public static List <TreeViewItemModel> ToKendoTreeViewItemModelList(this DocumentTreeModels documents)
        {
            List <Kendo.Mvc.UI.TreeViewItemModel> result = null;

            if (documents?.Documents == null || !documents.Documents.Any())
            {
                return(null);
            }

            var topMenuItems = DocumentTreeModelsExtensions.GetTopLevelItems(documents, 0);

            result = new List <TreeViewItemModel>();

            foreach (var topMenuItem in topMenuItems)
            {
                TreeViewItemModel topMenuTreeItem = DocumentTreeModelsExtensions.CreateKendoTreeViewModel(topMenuItem);
                var children = DocumentTreeModelsExtensions.GetChildItems(documents, topMenuItem.Id);
                if (children != null && children.Any())
                {
                    foreach (var child in children)
                    {
                        var subTopTree = DocumentTreeModelsExtensions.CreateKendoTreeViewModel(child);
                        topMenuTreeItem.Items.Add(subTopTree);
                        var subchildren = DocumentTreeModelsExtensions.GetChildItems(documents, child.Id);
                        if (subchildren == null || !subchildren.Any())
                        {
                            continue;
                        }
                        foreach (var subchild in subchildren)
                        {
                            var subsubTopTree = DocumentTreeModelsExtensions.CreateKendoTreeViewModel(subchild);
                            subTopTree.Items.Add(subsubTopTree);
                            var subsubchildren = DocumentTreeModelsExtensions.GetChildItems(documents, subchild.Id);
                            if (subsubchildren == null || !subsubchildren.Any())
                            {
                                continue;
                            }

                            foreach (var subsubchild in subsubchildren)
                            {
                                var subsubTreechild = DocumentTreeModelsExtensions.CreateKendoTreeViewModel(subsubchild);
                                subsubTopTree.Items.Add(subsubTreechild);
                            }
                        }
                    }
                }
                result.Add(topMenuTreeItem);
            }
            return(result);
        }
Ejemplo n.º 5
0
 private static void ProcessSubDocuments(DocumentTreeModels documents, List <DocumentTreeModel> children, ref TreeViewItemModel parent)
 {
     foreach (var child in children)
     {
         var item = DocumentTreeModelsExtensions.CreateKendoTreeViewModel(child);
         parent.Items.Add(DocumentTreeModelsExtensions.CreateKendoTreeViewModel(child));
         if (!child.IsDocument)
         {
             var subchildren = DocumentTreeModelsExtensions.GetChildItems(documents, child.Id);
             if (subchildren == null || !subchildren.Any())
             {
                 continue;
             }
             DocumentTreeModelsExtensions.ProcessSubDocuments(documents, subchildren, ref item);
         }
     }
 }
Ejemplo n.º 6
0
        /// <summary>
        /// Return the documents for the specified user
        /// </summary>
        /// <param name="email"></param>
        /// <param name="rooturl"></param>
        /// <param name="encodedId"></param>
        /// <returns></returns>
        public async Task <DocumentTreeModels> GetDocumentsForDocumentTree(string email, string rooturl, string encodedId)
        {
            DocumentTreeModels result = null;
            string             url    = $"{rooturl}api/documents?useremail={email}";

            if (string.IsNullOrEmpty(email) || string.IsNullOrEmpty(url) || string.IsNullOrEmpty(encodedId))
            {
                return(null);
            }

            LoggingService service   = new LoggingService();
            var            stopwatch = new Stopwatch();

            try
            {
                string response = await new WebApiServices().GetData(url, encodedId);

                if (!string.IsNullOrEmpty(response))
                {
                    result = new SerializerServices()
                             .DeserializeObject <DocumentTreeModels>(response.NormalizeJsonString());
                }
            }
            catch (Exception ex)
            {
                service.TrackException(ex);
                throw;
            }
            finally
            {
                stopwatch.Stop();
                var properties = new Dictionary <string, string>
                {
                    { "UserEmail", email },
                    { "WebServicesEndpoint", rooturl },
                    { "EncodedId", encodedId }
                };
                service.TrackEvent(LoggingServiceConstants.GetDocumentsForDocumentTree, stopwatch.Elapsed, properties);
            }
            return(result);
        }
        private static DocumentTreeModels CreateDocuments2()
        {
            DocumentTreeModels result   = new DocumentTreeModels();
            DocumentTreeModel  document = new DocumentTreeModel
            {
                Id         = 1,
                Name       = "Development",
                IsDocument = false,
                ParentId   = 0
            };

            result.Documents.Add(document);
            document = new DocumentTreeModel
            {
                Id         = 2,
                Name       = "Coding standards.docx",
                IsDocument = true,
                ParentId   = 1
            };
            result.Documents.Add(document);
            document = new DocumentTreeModel
            {
                Id         = 3,
                Name       = "Testing document.docx",
                IsDocument = true,
                ParentId   = 99
            };
            result.Documents.Add(document);
            document = new DocumentTreeModel
            {
                Id         = 4,
                Name       = "Testing strategy.docx",
                IsDocument = true,
                ParentId   = 101
            };
            result.Documents.Add(document);
            return(result);
        }
Ejemplo n.º 8
0
 private static List <DocumentTreeModel> GetChildItems(DocumentTreeModels documents, int documentId)
 {
     return(documents.Documents.FindAll(m => m.ParentId == documentId));
 }
Ejemplo n.º 9
0
 private static List <DocumentTreeModel> GetTopLevelItems(DocumentTreeModels documents, int documentId)
 {
     return(documents.Documents.FindAll(m => m.ParentId == documentId || m.ParentId > 0 && documents.Documents.Count(s => s.Id == m.ParentId) == 0));
 }
        private static DocumentTreeModels CreateDocuments()
        {
            DocumentTreeModels result   = new DocumentTreeModels();
            DocumentTreeModel  document = new DocumentTreeModel
            {
                Id         = 1,
                Name       = "Development",
                IsDocument = false,
                ParentId   = 0
            };

            result.Documents.Add(document);
            document = new DocumentTreeModel
            {
                Id         = 2,
                Name       = "Coding standards.docx",
                IsDocument = true,
                ParentId   = 1
            };
            result.Documents.Add(document);
            document = new DocumentTreeModel
            {
                Id         = 3,
                Name       = "Testing",
                IsDocument = false,
                ParentId   = 1
            };
            result.Documents.Add(document);
            document = new DocumentTreeModel
            {
                Id         = 4,
                Name       = "Testing strategy.docx",
                IsDocument = true,
                ParentId   = 3
            };
            result.Documents.Add(document);
            document = new DocumentTreeModel
            {
                Id         = 5,
                Name       = "Customers",
                IsDocument = false,
                ParentId   = 0
            };
            result.Documents.Add(document);
            document = new DocumentTreeModel
            {
                Id         = 6,
                Name       = "Spirax",
                IsDocument = false,
                ParentId   = 5
            };
            result.Documents.Add(document);
            document = new DocumentTreeModel
            {
                Id         = 7,
                Name       = "Contract.docx",
                IsDocument = true,
                ParentId   = 6
            };
            result.Documents.Add(document);
            document = new DocumentTreeModel
            {
                Id         = 8,
                Name       = "Terms and conditions.docx",
                IsDocument = true,
                ParentId   = 6
            };
            result.Documents.Add(document);
            document = new DocumentTreeModel
            {
                Id         = 9,
                Name       = "Unit Testing",
                IsDocument = false,
                ParentId   = 3
            };
            result.Documents.Add(document);
            document = new DocumentTreeModel
            {
                Id         = 10,
                Name       = "Unit Testing.docx",
                IsDocument = false,
                ParentId   = 9
            };
            result.Documents.Add(document);
            return(result);
        }