예제 #1
0
        public IEnumerable <InvoiceTemplate> Load()
        {
            var assembly = GetType().Assembly;
            var files    = assembly.GetManifestResourceNames();

            foreach (var file in files)
            {
                using (var stream = assembly.GetManifestResourceStream(file))
                {
                    if (stream == null)
                    {
                        logger.LogError("Stream {0} is null", file);
                        continue;
                    }

                    using (var reader = new StreamReader(stream))
                    {
                        var deserializer = new DeserializerBuilder().Build();
                        var yamlObject   = deserializer.Deserialize(reader);

                        var serializer = new SerializerBuilder()
                                         .JsonCompatible()
                                         .Build();

                        var json   = serializer.Serialize(yamlObject);
                        var result = JsonConvert.DeserializeObject <InvoiceTemplate>(json);
                        if (result.Validate())
                        {
                            if (result.Options.DateFormats != null)
                            {
                                for (var i = 0; i < result.Options.DateFormats.Length; i++)
                                {
                                    var format = result.Options.DateFormats[i];
                                    result.Options.DateFormats[i] = PythonDateStyleConverter.Convert(format);
                                }
                            }

                            yield return(result);
                        }
                        else
                        {
                            logger.LogError("Failed to construct object: {0}", json);
                        }
                    }
                }
            }
        }
예제 #2
0
        public void Construct(string input, string expected)
        {
            var result = PythonDateStyleConverter.Convert(input);

            Assert.AreEqual(expected, result);
        }