public void GlobalSetupGeneric() { var palContents = File.ReadAllText(_paletteFileName); _pal = PaletteJsonSerializer.ReadPalette(palContents, new ColorFactory()); //var codecFileName = Path.Combine(Directory.GetCurrentDirectory(), "Resources", _genericCodecFileName); var serializer = new XmlGraphicsFormatReader(_codecSchemaFileName); var format = serializer.LoadFromFile(_genericCodecFileName); _codec = new IndexedFlowGraphicsCodec((FlowGraphicsFormat)format.AsSuccess.Result); Setup(_genericFileName, "generic"); }
public MagitekResults LoadXmlCodecs(string codecsPath) { var formats = new Dictionary <string, IGraphicsFormat>(); var serializer = new XmlGraphicsFormatReader(_schemaFileName); var errors = new List <string>(); foreach (var formatFileName in Directory.GetFiles(codecsPath).Where(x => x.EndsWith(".xml"))) { var result = serializer.LoadFromFile(formatFileName); result.Switch(success => { if (formats.ContainsKey(success.Result.Name)) { errors.Add($"Failed to load XML codec '{formatFileName}'"); errors.AddRange(new[] { $"XML codec with name '{formatFileName}' already exists" }); } else { formats.Add(success.Result.Name, success.Result); } }, fail => { errors.Add($"Failed to load XML codec '{formatFileName}'"); errors.AddRange(fail.Reasons); }); } CodecFactory = new CodecFactory(formats); if (errors.Any()) { return(new MagitekResults.Failed(errors)); } else { return(MagitekResults.SuccessResults); } }