public void GivenValidFilename_WhenFrom_Then() { // Arrange var file = new FileInfo(@"E:\tmp\vm-pricing_some-region_some-operating-system.json"); // Act var actual = FileIdentifier.From(file); // Assert var expected = new FileIdentifier("some-region", "some-operating-system"); actual.Should().BeEquivalentTo(expected); }
public List <VmPricing> Parse() { var pricingFiles = Directory.GetFiles(_pricingDirectory, "*.json"); var allVmPricing = new List <VmPricing>(); foreach (var pricingFile in pricingFiles) { var fileInfo = new FileInfo(pricingFile); var fileIdentifier = FileIdentifier.From(fileInfo); var fileVmPricing = JsonConvert.DeserializeObject <List <VmPricing> >(File.ReadAllText(pricingFile)); fileVmPricing.ForEach(pricing => { pricing.Region = fileIdentifier.Region; pricing.OperatingSystem = fileIdentifier.OperatingSystem; }); allVmPricing.AddRange(fileVmPricing); } return(allVmPricing); }