public void CanParseCaseInsensitiveGroup()
        {
            string iniContent = "[GlobalSettings]" + Environment.NewLine
                                + "Time: all" + Environment.NewLine
                                + "Category: Art,Drawing";

            IniDocument document = new IniDocument(iniContent, false, false);

            Assert.IsTrue(document.Contains("globalsettings"));
            Assert.AreEqual(document["globalsettings", "category"], "Art,Drawing");
        }
        //[Test]
        public void CanParseFailed()
        {
            string iniContent = @"F:\Dev\Workshops\knowledgedrink\src\Tests\CommonLibrary.WebModules.Tests\Workshops\Import\FileDiverse_failed_small.txt";

            IniDocument document = new IniDocument(iniContent, true, false);

            Assert.IsTrue(document.Contains("globalsettings"));
            Assert.AreEqual(document["globalsettings", "category"], "Art,Sculpture");

            document.Save(@"F:\Dev\Workshops\knowledgedrink\src\Tests\failureTest.txt");
        }
        public void CanLoadEmptyDoc()
        {
            IniDocument doc = new IniDocument();

            doc["globalSettings", "time"]     = "all";
            doc["globalSettings", "category"] = "Art,Drawing";
            doc["", "pageSize"] = 20;

            Assert.IsTrue(doc.Contains("globalSettings"));
            Assert.AreEqual(doc["globalSettings", "category"], "Art,Drawing");
            Assert.AreEqual(doc["", "pageSize"], 20);
        }
        public void CanParseMultipleGroups()
        {
            string iniContent = "[globalSettings]" + Environment.NewLine
                                + "time: all" + Environment.NewLine
                                + "category: Art,Drawing" + Environment.NewLine
                                + "[post1]" + Environment.NewLine
                                + "title:Build a website" + Environment.NewLine
                                + "CreatedBy: user1";

            IniDocument document = new IniDocument(iniContent, false);

            Assert.IsTrue(document.Contains("globalSettings"));
            Assert.AreEqual(document["globalSettings", "category"], "Art,Drawing");

            Assert.AreEqual(document["post1", "title"], "Build a website");
            Assert.AreEqual(document["post1", "CreatedBy"], "user1");
        }
Beispiel #5
0
        /// <summary>
        /// Save to the database.
        /// </summary>
        public virtual void Save()
        {
            var itemsFromThis = new List <ConfigItem>();

            PopulateItems(itemsFromThis, this);

            var           itemsToDelete = new List <ConfigItem>();
            var           itemsToCreate = new List <ConfigItem>();
            var           itemsToUpdate = new List <ConfigItem>();
            IConfigSource iniDoc        = new IniDocument();
            var           criteria      = Query <object> .New().Where("App").Is(_appName).And("Name").Is(_configName);

            var fromDb = _repo.Find(criteria);

            foreach (var dbItem in fromDb)
            {
                // Does not exist.
                if (!this.Contains(dbItem.Section, dbItem.Key))
                {
                    itemsToDelete.Add(dbItem);
                }
                else
                {
                    itemsToUpdate.Add(dbItem);
                    dbItem.Val = this[dbItem.Section, dbItem.Key].ToString();
                }
                iniDoc[dbItem.Section, dbItem.Key] = dbItem.Val;
            }
            foreach (var itemToCreate in itemsFromThis)
            {
                if (!iniDoc.Contains(itemToCreate.Section, itemToCreate.Key))
                {
                    itemToCreate.CreateDate = DateTime.Now;
                    itemToCreate.CreateUser = "";
                    itemToCreate.UpdateDate = DateTime.Now;
                    itemToCreate.UpdateUser = "";
                    itemsToCreate.Add(itemToCreate);
                }
            }

            // Now persist to db.
            itemsToDelete.ForEach(c => _repo.Delete(c.Id));
            itemsToUpdate.ForEach(c => _repo.Update(c));
            itemsToCreate.ForEach(c => _repo.Create(c));
        }
        public void CanParseMultipleGroupsWithSameName()
        {
            string iniContent = "[post]" + Environment.NewLine
                                + "title:Build a website0" + Environment.NewLine
                                + "CreatedBy: user0" + Environment.NewLine + Environment.NewLine
                                + "[post]" + Environment.NewLine
                                + "title:Build a website1" + Environment.NewLine
                                + "CreatedBy: user1";

            IniDocument doc = new IniDocument(iniContent, false);

            Assert.IsTrue(doc.Contains("post"));
            Assert.AreEqual(doc.Count, 1);
            Assert.AreEqual(doc.GetSection("post", 0).Get <string>("title"), "Build a website0");
            Assert.AreEqual(doc.GetSection("post", 0).Get <string>("CreatedBy"), "user0");
            Assert.AreEqual(doc.GetSection("post", 1).Get <string>("title"), "Build a website1");
            Assert.AreEqual(doc.GetSection("post", 1).Get <string>("CreatedBy"), "user1");
        }