Esempio n. 1
0
        public byte[] GetPresetData(Preset preset)
        {
            var data = PresetDataStorage.Find(preset.PresetId);

            if (data != null)
            {
                return(data.PresetData);
            }

            return(null);
        }
        public async Task PersistPreset(PresetParserMetadata presetMetadata, byte[] data, bool force = false)
        {
            var plugin = presetMetadata.Plugin;
            var preset = (from p in plugin.Presets
                          where p.OriginalMetadata.SourceFile == presetMetadata.SourceFile
                          select p)
                         .FirstOrDefault();

            if (preset == null)
            {
                preset        = new Preset();
                preset.Plugin = plugin;
                plugin.Presets.Add(preset);
            }

            preset.SetFromPresetParser(presetMetadata);

            PresetUpdated?.Invoke(this, new PresetUpdatedEventArgs(preset));

            var hash = HashUtils.getIxxHash(data);

            if (hash == preset.PresetHash && preset.PresetSize == data.Length && !force)
            {
                return;
            }

            preset.PresetHash = hash;
            preset.PresetSize = data.Length;

            var presetData = new PresetDataStorage {
                PresetData = data, PluginId = preset.Plugin.PluginId, PresetDataId = preset.PresetId
            };
            await _db.InsertOrReplaceAsync(presetData);

            preset.PresetCompressedSize = presetData.PresetCompressedSize;
        }