public void SplitBusinessDataByYears_MoreYears() { var inputBusinessItem = new BusinessDataItem { ICO = "123", Name = "Test company", LegalFormOfOwner = "s.r.o", CountryOfOwner = "Czech republic", OwnerCountrySign = "DOM", OwnerType = "FO", OwnerShare = "50", FromTime = DateTime.ParseExact("01.07.2015", "dd.MM.yyyy", CultureInfo.CurrentCulture), ToTime = DateTime.ParseExact("30.09.2021", "dd.MM.yyyy", CultureInfo.CurrentCulture), IsValid = "1", }; var dateProcessor = new DateProcessor(); var result = dateProcessor.SplitBusinessDataByYear(inputBusinessItem); Assert.AreEqual(7, result.Count); Assert.AreEqual(DateTime.ParseExact("01.07.2015", "dd.MM.yyyy", CultureInfo.CurrentCulture), result[0].FromTime); Assert.AreEqual(DateTime.ParseExact("31.12.2015", "dd.MM.yyyy", CultureInfo.CurrentCulture), result[0].ToTime); Assert.AreEqual(DateTime.ParseExact("01.01.2021", "dd.MM.yyyy", CultureInfo.CurrentCulture), result[6].FromTime); Assert.AreEqual(DateTime.ParseExact("30.09.2021", "dd.MM.yyyy", CultureInfo.CurrentCulture), result[6].ToTime); }
public List <BusinessDataItem> SplitBusinessDataByYear(BusinessDataItem businessDataItem) { var startYear = businessDataItem.FromTime.Year; var endYear = businessDataItem.ToTime.Year; if (startYear == endYear) { return(new List <BusinessDataItem>() { businessDataItem }); } var resultList = new List <BusinessDataItem>(); for (int i = startYear; i <= endYear; i++) { if (i >= 2000) { resultList.Add( new BusinessDataItem { OwnerId = businessDataItem.OwnerId, ICO = businessDataItem.ICO, Name = businessDataItem.Name, OwnerCountrySign = businessDataItem.OwnerCountrySign, OwnerShare = businessDataItem.OwnerShare, CountryOfOwner = businessDataItem.CountryOfOwner, LegalFormOfOwner = businessDataItem.LegalFormOfOwner, OwnerType = businessDataItem.OwnerType, FromTime = i == startYear ? businessDataItem.FromTime : DateTime.ParseExact($"01.01.{i}", "dd.MM.yyyy", CultureInfo.CurrentCulture), ToTime = i == endYear ? businessDataItem.ToTime : DateTime.ParseExact($"31.12.{i}", "dd.MM.yyyy", CultureInfo.CurrentCulture), IsValid = businessDataItem.IsValid, } ); } } return(resultList); }
public List <BusinessDataItem> LoadDataFromFile(string filePath) => File.ReadAllLines(filePath, Encoding.UTF8) .Skip(1) .Select(value => BusinessDataItem.FromCsv(value)) .ToList();