예제 #1
0
        /// <summary>
        /// Gets a new <see cref="DgmlDoc"/> from the file provided.
        /// </summary>
        /// <param name="filepath">The fullpath to the document.</param>
        /// <returns>The <see cref="DgmlDoc"/> corresponding to the file.</returns>
        public DgmlDoc GetFromFile(string filepath)
        {
            DgmlDoc document = new DgmlDoc();

            document.LoadFromFile(filepath);
            return(document);
        }
예제 #2
0
 /// <summary>
 /// Event receiver for the <see cref="DgmlFileEventArgs"/> event.
 /// </summary>
 /// <param name="sender">The event sender.</param>
 /// <param name="e">The event payload.</param>
 private void OnDgmlFileSelected(object sender, DgmlFileEventArgs e)
 {
     if (e.Type == DgmlFileEventEnum.Selected)
     {
         this.dgmlDoc = dgmlService.GetFromFile(e.Payload.FilePath);
         this.DgmlDocHandler?.Invoke(this, new DgmlDocEventArgs(DgmlDocEventEnum.Loaded, dgmlDoc));
     }
 }
예제 #3
0
 /// <summary>
 /// Hides a list of categories of the <see cref="DgmlDoc"/>.
 /// </summary>
 /// <param name="doc">The <see cref="DgmlDoc"/> where to hide the categories.</param>
 /// <param name="dgmlCategories">The list of <see cref="DgmlCategory"/> to hide.</param>
 /// <returns>The modified <see cref="DgmlDoc"/>.</returns>
 public DgmlDoc HideCategories(DgmlDoc doc, IList <DgmlCategory> dgmlCategories)
 {
     foreach (DgmlCategory dgmlCategory in dgmlCategories)
     {
         this.HideCategory(doc, dgmlCategory);
     }
     return(doc);
 }
예제 #4
0
        /// <summary>
        /// Hide a specific category of the <see cref="DgmlDoc"/>.
        /// </summary>
        /// <param name="doc">The <see cref="DgmlDoc"/> where to hide the category.</param>
        /// <param name="dgmlCategory">The <see cref="DgmlCategory"/> to hide.</param>
        /// <returns>The modified <see cref="DgmlDoc"/>.</returns>
        public DgmlDoc HideCategory(DgmlDoc doc, DgmlCategory dgmlCategory)
        {
            Category category = new Category()
            {
                Id = dgmlCategory.Id, Label = dgmlCategory.Label
            };

            doc.HideCategory(category);
            return(doc);
        }
예제 #5
0
        public void DgmlService_SaveFile_NoChangesOnDgmlFileShouldWork()
        {
            DgmlService          service = new DgmlService();
            IEnumerator <string> exampleDgmlPathEnumerator = DgmlExamplesFilepath.GetEnumerator();

            while (exampleDgmlPathEnumerator.MoveNext())
            {
                DgmlDoc doc = service.GetFromFile(exampleDgmlPathEnumerator.Current);
                service.SaveFile(doc);

                DgmlDoc docReopened = service.GetFromFile(exampleDgmlPathEnumerator.Current);
                Assert.AreEqual <DgmlDoc>(doc, docReopened);
            }
        }
예제 #6
0
        public void DgmlService_SaveFile_ShouldUpdateFileModifiedTime()
        {
            DgmlService          service = new DgmlService();
            IEnumerator <string> exampleDgmlPathEnumerator = DgmlExamplesFilepath.GetEnumerator();

            while (exampleDgmlPathEnumerator.MoveNext())
            {
                DateTime originalModifiedFileDateTime = File.GetLastWriteTimeUtc(exampleDgmlPathEnumerator.Current);
                DgmlDoc  doc = service.GetFromFile(exampleDgmlPathEnumerator.Current);
                service.SaveFile(doc);

                DateTime updatedModifiedFileDateTime = File.GetLastWriteTimeUtc(exampleDgmlPathEnumerator.Current);
                Assert.IsTrue(updatedModifiedFileDateTime - originalModifiedFileDateTime > TimeSpan.MinValue);
            }
        }
예제 #7
0
        public void DgmlService_HideAllCategories_SimulateChangesShouldWork()
        {
            DgmlService          service = new DgmlService();
            IEnumerator <string> exampleDgmlPathEnumerator = DgmlExamplesFilepath.GetEnumerator();

            while (exampleDgmlPathEnumerator.MoveNext())
            {
                DgmlDoc doc         = service.GetFromFile(exampleDgmlPathEnumerator.Current);
                DgmlDoc originalDoc = (DgmlDoc)doc.Clone();

                service.HideAllCategories(doc);
                service.ShowAllCategories(originalDoc);
                service.HideAllCategories(originalDoc);

                Assert.AreEqual <DgmlDoc>(doc, originalDoc);
            }
        }
예제 #8
0
        public void DgmlService_HideCategories_SimulateChangesShouldWork()
        {
            DgmlService          service = new DgmlService();
            IEnumerator <string> exampleDgmlPathEnumerator = DgmlExamplesFilepath.GetEnumerator();

            while (exampleDgmlPathEnumerator.MoveNext())
            {
                DgmlDoc doc         = service.GetFromFile(exampleDgmlPathEnumerator.Current);
                DgmlDoc originalDoc = (DgmlDoc)doc.Clone();

                IList <DgmlCategory> dgmlCategories = doc.Categories.Select(p => new DgmlCategory()
                {
                    Id = p.Id, Label = p.Label
                }).ToList();
                int categoryIndex = random.Next(dgmlCategories.Count);

                service.HideCategory(doc, dgmlCategories[categoryIndex]);
                Assert.AreEqual <DgmlDoc>(doc, originalDoc);
            }
        }
예제 #9
0
 /// <summary>
 /// Shows all the categories of the <see cref="DgmlDoc"/>.
 /// </summary>
 /// <param name="doc">The <see cref="DgmlDoc"/> where to show all categories.</param>
 /// <returns>The modified <see cref="DgmlDoc"/>.</returns>
 public DgmlDoc ShowAllCategories(DgmlDoc doc)
 {
     doc.ShowAllCategories();
     return(doc);
 }
예제 #10
0
 /// <summary>
 /// Hides all the categories of the <see cref="DgmlDoc"/>.
 /// </summary>
 /// <param name="doc">The <see cref="DgmlDoc"/> where to hide all categories.</param>
 /// <returns>The modified <see cref="DgmlDoc"/>.</returns>
 public DgmlDoc HideAllCategories(DgmlDoc doc)
 {
     doc.HideAllCategories();
     return(doc);
 }
예제 #11
0
 /// <summary>
 /// Saves the <see cref="DgmlDoc"/> on the current file.
 /// </summary>
 /// <param name="dgmlDoc">The <see cref="DgmlDoc"/> to save.</param>
 public void SaveFile(DgmlDoc dgmlDoc, bool backup = false)
 {
     dgmlDoc.SaveOnCurrentFile(backup);
 }