public void It_Should_Write_And_Read_A_Script_Dynamic_Data()
            {
                var scriptDynamicData = new ScriptDynamicDataModel
                {
                    Key     = "test-script-1",
                    LastRun = DateTime.UtcNow.Ticks
                };

                var result = _scriptsDynamicDataRepository.GetAll();

                Assert.IsNotNull(result);
                Assert.AreEqual(0, result.Count());

                //Create
                _scriptsDynamicDataRepository.Set(scriptDynamicData);

                result = _scriptsDynamicDataRepository.GetAll();
                Assert.IsNotNull(result);
                Assert.AreEqual(1, result.Count());
                Assert.AreEqual(scriptDynamicData.Key, result.First().Key);
                Assert.AreEqual(scriptDynamicData.LastRun, result.First().LastRun);

                //Update
                scriptDynamicData.LastRun += 100;
                _scriptsDynamicDataRepository.Set(scriptDynamicData);

                result = _scriptsDynamicDataRepository.GetAll();
                Assert.IsNotNull(result);
                Assert.AreEqual(1, result.Count());
                Assert.AreEqual(scriptDynamicData.Key, result.First().Key);
                Assert.AreEqual(scriptDynamicData.LastRun, result.First().LastRun);
            }
        public void Set(ScriptDynamicDataModel scriptDynamicData)
        {
            var scriptsDynamicData = (IList <ScriptDynamicDataModel>)GetAll();

            if (scriptsDynamicData.Any(script => script.Key == scriptDynamicData.Key))
            {
                scriptsDynamicData.Remove(scriptsDynamicData.FirstOrDefault(script => script.Key == scriptDynamicData.Key));
            }
            scriptsDynamicData.Add(scriptDynamicData);

            var xmlData =
                new XDocument(
                    new XElement("scripts-dynamic-data",
                                 scriptsDynamicData.Select(script => new XElement("script-dynamic-data",
                                                                                  new XAttribute("key", script.Key), new XAttribute("last-run", script.LastRun)
                                                                                  )
                                                           )
                                 )
                    );

            xmlData.Save(_dataFilePath);
        }