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); } } } } }
public void Construct(string input, string expected) { var result = PythonDateStyleConverter.Convert(input); Assert.AreEqual(expected, result); }