AzureSiteReplicator.Data.ConfigFile.LoadOrCreate C# (CSharp) Method

LoadOrCreate() public method

public LoadOrCreate ( ) : void
return void
        public void LoadOrCreate()
        {
            XmlDocument doc = new XmlDocument();
            XPathNavigator nav = null;
            bool hasMore;
            List<SkipRule> newSkips = new List<SkipRule>();

            ClearSkips();

            if (!FileHelper.FileSystem.File.Exists(_filePath))
            {
                Save();
                return;
            }

            using (Stream stream =
                FileHelper.FileSystem.File.OpenRead(_filePath))
            {
                doc = new XmlDocument();
                doc.Load(stream);
            }

            nav = doc.CreateNavigator();
            nav.MoveToFirstChild();
            hasMore = nav.MoveToFirstChild();

            while (hasMore)
            {
                if (string.Equals(nav.Name, "skipRules", StringComparison.OrdinalIgnoreCase))
                {
                    bool hasMoreSkips = nav.MoveToFirstChild();
                    if (hasMoreSkips)
                    {
                        while (hasMoreSkips)
                        {
                            SkipRule rule = new SkipRule();
                            rule.Expression = nav.Value;

                            if (nav.MoveToFirstAttribute())
                            {
                                if (string.Equals(nav.Name, "isDirectory", StringComparison.OrdinalIgnoreCase))
                                {
                                    bool isDir = false;
                                    bool.TryParse(nav.Value, out isDir);
                                    rule.IsDirectory = isDir;
                                }

                                nav.MoveToParent();
                            }

                            newSkips.Add(rule);
                            hasMoreSkips = nav.MoveToNext();
                        }

                        _skipRules = newSkips;
                        nav.MoveToParent();
                    }
                }

                hasMore = nav.MoveToNext();
            }
        }

Usage Example

        public ConfigRepository()
        {
            _config = new ConfigFile();
            _config.LoadOrCreate();

            var profileFilePaths =
                FileHelper.FileSystem.Directory.GetFiles(
                    Environment.Instance.SiteReplicatorPath, "*.publishSettings");

            _sites = new HashSet <Site>();
            foreach (var profilePaths in profileFilePaths)
            {
                _sites.Add(new Site(profilePaths));
            }
        }
All Usage Examples Of AzureSiteReplicator.Data.ConfigFile::LoadOrCreate