public override Rozliczenie read(string fileName) { _klu = new FabrykaKlasouzytku(); _klu.read(Path.Combine(Path.GetDirectoryName(fileName), "uzytkiG5.csv")); Kontrakt.requires(File.Exists(fileName)); string[] lines = File.ReadAllLines(fileName, Encoding.GetEncoding(1250)); string headerLine = lines[0]; Kontrakt.assert( headerLine.Equals("Rozliczenie konturów klasyfikacyjnych na działkach [m^2]"), "Nieprawidłowy nagłówek pliku z rozliczeniem konturów."); Rozliczenie rozliczenie = new Rozliczenie(_rodzajDzialki, _klu); int wczytaneDzialki = 0; List <string> rekordDzialki = new List <string>(); for (int i = 1; i < lines.Length; i++) { string linia = lines[i].Trim(); if (koniecRekorduDzialki(rekordDzialki, linia)) { readRekordDzialki(rozliczenie, rekordDzialki); wczytaneDzialki++; } else { //Kumulacja rekordu działki wraz z użytkami. if (!String.IsNullOrEmpty(linia)) { rekordDzialki.Add(linia); } } } Kontrakt.ensures(rozliczenie != null); Kontrakt.ensures(rekordDzialki.Count == 0, "Nieprawidłowo zakończony rekord działki"); Kontrakt.ensures(rozliczenie.Count() > 0); Kontrakt.ensures(wczytaneDzialki == rozliczenie.Count()); return(rozliczenie); }
public string oznaczenie(FabrykaKlasouzytku klu) { return(klu.map(_ofu, _ozu, _ozk)); }
public Rozliczenie(RodzajDzialki rodzajDzialki, FabrykaKlasouzytku klu) { _rodzajDzialki = rodzajDzialki; _klu = klu; }