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);
        }
示例#2
0
 public string oznaczenie(FabrykaKlasouzytku klu)
 {
     return(klu.map(_ofu, _ozu, _ozk));
 }
示例#3
0
 public Rozliczenie(RodzajDzialki rodzajDzialki, FabrykaKlasouzytku klu)
 {
     _rodzajDzialki = rodzajDzialki;
     _klu           = klu;
 }