private DzialkaEwidencyjna parseDzialka(string linia) { string[] pola = linia.Split(new char[] { ' ' }, 2, StringSplitOptions.RemoveEmptyEntries); IdentyfikatorDzialki identyfikator = IdentyfikatorDzialki.parseId(pola[0]); Powierzchnia powierzchnia = Powierzchnia.parseMetry(pola[1]); DzialkaEwidencyjna dzialka = new DzialkaEwidencyjna(identyfikator, powierzchnia); return(dzialka); }
public DzialkaEwidencyjna dzialkaById(IdentyfikatorDzialki id) { Kontrakt.requires(id != null); Kontrakt.requires(zawieraId(id), "Rozliczenie nie zawiera działki " + id.ToString()); DzialkaEwidencyjna dzialka = _indeks[id.identyfikator()]; Kontrakt.ensures(dzialka != null); return(dzialka); }
public DzialkaEwidencyjna(IdentyfikatorDzialki idDzialki, Powierzchnia powDzialki) : base(powDzialki) { Kontrakt.requires(idDzialki != null); Kontrakt.requires(powDzialki != null); _identyfikator = idDzialki; Kontrakt.ensures(_identyfikator == idDzialki); Kontrakt.ensures(powierzchnia().Equals(powDzialki)); Kontrakt.ensures(_dzialkaDotychczasowa == null); Kontrakt.ensures(_dzialkiPodzielone.Count == 0); }
public void dodajDzialka(DzialkaEwidencyjna dzialka) { Kontrakt.requires(dzialka != null); Kontrakt.requires(dzialka.countKlasouzytki() > 0, "Działka nie zawiera żadnych klasoużytków."); Kontrakt.requires(!zawieraId(dzialka.identyfikator()), "Rozliczenie zawiera już działkę " + dzialka.identyfikator()); int dzialkiPrzed = _dzialki.Count; _dzialki.Add(dzialka); IdentyfikatorDzialki id = dzialka.identyfikator(); _indeks.Add(id.identyfikator(), dzialka); int dzialkiPo = _dzialki.Count; Kontrakt.ensures(dzialkiPrzed + 1 == dzialkiPo); Kontrakt.ensures(zawieraId(id)); }
public static bool zmienionaDzialka(this Rozliczenie rozliczenie, DzialkaEwidencyjna dzialkaDotychczasowa) { IdentyfikatorDzialki id = dzialkaDotychczasowa.identyfikator(); DzialkaEwidencyjna dzialkaNowa = rozliczenie.dzialkaById(id); foreach (var klasouzytek in dzialkaNowa.unionUzytki(dzialkaDotychczasowa)) { Klasouzytek stary = null; foreach (var uzytek in dzialkaDotychczasowa) { if (klasouzytek.Equals(uzytek)) { stary = uzytek; break; } } Klasouzytek nowy = null; foreach (var uzytek in dzialkaNowa) { if (klasouzytek.Equals(uzytek)) { nowy = uzytek; break; } } if (stary == null || nowy == null) { return(true); //Zmieniona, bo różnica użytków } Powierzchnia stara = stary.powierzchnia(); Powierzchnia nowa = nowy.powierzchnia(); if (nowa.powyzejOdchylki(stara)) { return(true); //Zmieniona, bo powyżej odchyłki } } return(dzialkaNowa.powierzchnia().powyzejOdchylki(dzialkaDotychczasowa.powierzchnia())); }
public bool zawieraId(IdentyfikatorDzialki id) { return(_indeks.ContainsKey(id.identyfikator())); }