示例#1
0
    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");
    }
示例#2
0
    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);
        }
    }