예제 #1
0
        public async Task LoadAsync()
        {
            var lookup = await _packLookupService.GetPackLookupAsync();

            Packs.Clear();

            foreach (var item in lookup)
            {
                Packs.Add(item);
            }
        }
예제 #2
0
        public async void Reload()
        {
            Packs.Clear();

            foreach (var pack in await _shaderPackService.LoadAllAsync())
            {
                if (pack.IsEnabled)
                {
                    _enabledPack = pack;
                }

                Packs.Add(pack);
            }
        }
        public static void Load()
        {
            string currentPackName = CurrentPack == null ? null : CurrentPack.Name;

            Packs.Clear();

            var defaultDirs = new DirectoryInfo(DefaultSmileysFolder).EnumerateDirectories();
            var customDirs  = new DirectoryInfo(CustomSmileysFolder).EnumerateDirectories();

            foreach (var dir in defaultDirs.Concat(customDirs))
            {
                var  doc       = XDocument.Load(Path.Combine(dir.FullName, ManifestFileName));
                bool isDefault = bool.Parse(doc.Root.Attribute(IsDefaultAttributeName).Value);
                var  pack      = new SmileyPack(dir.Name, isDefault);

                foreach (var elem in doc.Root.Elements(SmileyElementName))
                {
                    string   fileName  = elem.Attribute(FileNameAttributeName).Value;
                    string[] shortcuts = elem.Attribute(ShortcutsAttributeName).Value
                                         .Split(SmileyShortcutsSeparator);

                    var smiley = new Smiley();
                    smiley.FileName = fileName;
                    smiley.Image    = GetImage(Path.Combine(GetPath(pack), fileName));

                    foreach (string s in shortcuts)
                    {
                        smiley.Shortcuts.Add(s);
                    }

                    pack.Smileys.Add(smiley);
                }

                Packs.Add(pack);
            }

            if (currentPackName == null)
            {
                CurrentPack = Packs.First();
            }
            else
            {
                SetCurrentPack(currentPackName);
            }
        }