public void resetEwidencja(DzialkaEwidencyjna dzialka) { Kontrakt.requires(dzialka._dzialkiPodzielone.Count == 0); Kontrakt.requires(dzialka.jednostkaRejestrowa() != null, "Działka ewidencyjna nie ma przypisanej jednostki rejestrowej."); Kontrakt.requires(dzialka.countKlasouzytki() > 0, "Działka ewidencyjna nie ma żadnych użytków."); _dzialkaDotychczasowa = dzialka; }
public bool pomierzonaPonizejOdchylki(DzialkaEwidencyjna dzialka) { if (!dzialka.przypisanaDotychczasowa()) { return(false); //Brak działki ewidencyjnej } DzialkaEwidencyjna dotychczasowa = dzialka.dzialkaDotychczasowa(); if (dotychczasowa.countPodzielone() > 0) { return(false); //Działka jest podzielona lub przenumerowana } long pg = dzialka.powierzchnia().metryKwadratowe(); long pe = dotychczasowa.powierzchnia().metryKwadratowe(); if (pg == pe) { return(false); //Powierzchnia działek jest identyczna } long dr = pg - pe; //Różnica powierzchni long drAbsolute = Math.Abs(dr); double dp = 0.0001 * pg + 0.2 * Math.Sqrt(pg); //Dopuszczalna odchyłka long dpRounded = (long)Math.Round(dp, MidpointRounding.ToEven); return(drAbsolute == 1 || drAbsolute == 2 || drAbsolute == 3 || drAbsolute <= dpRounded); }
private bool aryPowierzchnia(DzialkaEwidencyjna dzialka) { if (!dzialka.przypisanaDotychczasowa()) { return(false); //Brak działki ewidencyjnej } return(dzialka.dzialkaDotychczasowa().powierzchnia().metryKwadratowe().ToString().EndsWith("00")); }
public void dzialkaDotychczasowa(DzialkaEwidencyjna dzialka) { Kontrakt.requires(_dzialkaDotychczasowa == null, "Działce już została przypisana działka dotychczasowa " + _identyfikator); Kontrakt.requires(dzialka.jednostkaRejestrowa() != null, "Działka dotychczasowa nie ma przypisanej jednostki rejestrowej."); Kontrakt.requires(dzialka.countKlasouzytki() > 0, "Działka dotychczasowa nie ma żadnych użytków."); _dzialkaDotychczasowa = dzialka; }
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 void dodajPodzial(DzialkaEwidencyjna dzialkaPierwotna, string uwaga) { //Działka powinna mieć inny numer!!! Kontrakt.requires(przypisanaDotychczasowa(), "Nie można dodać podziału bez przypisania działki dotychczasowej."); Kontrakt.requires(_dzialkaDotychczasowa.Equals(dzialkaPierwotna), "Podział działki dotyczy innej działki dotychczasowej " + _identyfikator); _dzialkaDotychczasowa.podziel(this); _dzialkaDotychczasowa._przyczynaPodzialu = uwaga; }
private void writeDzialka(DzialkaEwidencyjna dzialka) { _writer.WriteLine("{0,-15}{1,15}", dzialka.identyfikator(), dzialka.powierzchnia().metryKwadratowe()); foreach (var uzytek in dzialka) { writeUzytek(uzytek); } _writer.WriteLine("**"); }
public virtual bool niepomierzona(DzialkaEwidencyjna dzialka) { bool?pomierzone = pomierzonePunkty(dzialka); if (!pomierzone.HasValue) { return(false); //nieznana } return(!pomierzone.Value); }
private void writeDzialka(DzialkaEwidencyjna dzialka) { //- 296 1.5000 _writer.WriteLine("- {0} {1:F4}", dzialka.identyfikator().numerDzialki(), dzialka.powierzchnia().hektary()); foreach (var uzytek in dzialka) { writeUzytek(uzytek); } _writer.WriteLine(); }
private bool operatowePunkty(DzialkaEwidencyjna dzialka) { foreach (var punkt in dzialka.punkty()) { Kontrakt.assert(punkt.rodzaj().zPomiaru()); string operat = punkt.operat(); if (!operaty.Contains(operat)) { return(false); } } return(true); }
public static IEnumerable <Klasouzytek> unionUzytki(this DzialkaEwidencyjna dzialkaNowa, DzialkaEwidencyjna dzialkaDotychczasowa) { HashSet <Klasouzytek> uzytki = new HashSet <Klasouzytek>(); foreach (var uzytek in dzialkaDotychczasowa) { uzytki.Add(uzytek); } foreach (var uzytek in dzialkaNowa) { uzytki.Add(uzytek); } List <Klasouzytek> uzytkiPosortowane = new List <Klasouzytek>(uzytki); uzytkiPosortowane.Sort(); return(uzytkiPosortowane); }
private void readRekordDzialki(Rozliczenie rozliczenie, List <string> rekordDzialki) { //1-1 19857 string liniaDzialki = rekordDzialki[0]; DzialkaEwidencyjna dzialka = parseDzialka(liniaDzialki); //Pomijamy pierwszy rekord reprezentujący działkę. for (int i = 1; i < rekordDzialki.Count; i++) { // LsVI 3987 string liniaKlasouzytku = rekordDzialki[i]; Klasouzytek klasouzytek = parseKlasouzytek(liniaKlasouzytku); dzialka.dodajKlasouzytek(klasouzytek); } rozliczenie.dodajDzialka(dzialka); //Rozpoczęcie kumulacji nowego rekordu. rekordDzialki.Clear(); }
private void writeDzialka(DzialkaEwidencyjna dzialka) { string id = dzialka.identyfikator().ToString(); RodzajDzialki rodzaj = rozliczenie().rodzaj; bool nieznany = rodzaj.nieznany(dzialka); bool wektoryzacja = rodzaj.niepomierzona(dzialka); bool pomierzona = rodzaj.pomierzona(dzialka); var operaty = from pkt in dzialka.punkty() select "[" + pkt.zrodloDanych() + ", " + pkt.bladPolozenia() + ", " + pkt.operat() + "]"; string joinOperaty = string.Join(" ", operaty); if (nieznany) { _writer.WriteLine("{0,-16}{1,-16}{2}", id, "nieznany", joinOperaty); } if (wektoryzacja) { _writer.WriteLine("{0,-16}{1,-16}{2}", id, "wektoryzacja", joinOperaty); } if (pomierzona) { _writer.WriteLine("{0,-16}{1,-16}{2}", id, "pomiar", joinOperaty); } int count = 0; if (nieznany) { count++; } if (wektoryzacja) { count++; } if (pomierzona) { count++; } Kontrakt.ensures(count == 1, "Konflikt rodzaju działki: " + id); }
protected bool?pomierzonePunkty(DzialkaEwidencyjna dzialka) { List <PunktGraniczny> nieznane = new List <PunktGraniczny>(); List <PunktGraniczny> operatowe = new List <PunktGraniczny>(); List <PunktGraniczny> wektoryzacja = new List <PunktGraniczny>(); int innePunkty = 0; foreach (var punkt in dzialka.punkty()) { RodzajPunktu rodzaj = punkt.rodzaj(); if (rodzaj.nieznany()) { nieznane.Add(punkt); } else if (rodzaj.zWektoryzacji()) { wektoryzacja.Add(punkt); } else if (rodzaj.zPomiaru()) { operatowe.Add(punkt); } else { innePunkty++; } } Kontrakt.assert(innePunkty == 0); if (nieznane.Count > 0) { return(null); } if (wektoryzacja.Count > 0) { return(false); } if (operatowe.Count > 0) { return(true); } return(null); }
private void writeDzialki(string name, IEnumerable <DzialkaEwidencyjna> dzialki) { pominiete.Clear(); foreach (var dzialka in dzialki) { //Pomiń działki niezmienione DzialkaEwidencyjna dzialkaDotychczasowa = dzialka.dzialkaDotychczasowa(); Rozliczenie _rozliczenie = rozliczenie(); if (!_rozliczenie.zmienionaDzialka(dzialkaDotychczasowa)) { pominiete.Add(dzialka.identyfikator().ToString()); continue; } writeDzialka(dzialka); } if (pominiete.Count > 0) { Console.WriteLine("{1}: {0} działki niezmienione (pominięte)", pominiete.Count, name); } }
public override bool niepomierzona(DzialkaEwidencyjna dzialka) { bool?pomierzone = pomierzonePunkty(dzialka); if (!pomierzone.HasValue) { return(false); //nieznana } if (!pomierzone.Value) { return(true); //wektoryzacja } if (operatowePunkty(dzialka)) { return(false); //pomiar } if (aryPowierzchnia(dzialka)) { return(false); //pomiar } return(true); //wektoryzacja }
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())); }
private void podziel(DzialkaEwidencyjna dzialkaNowa) { Kontrakt.requires(_dzialkaDotychczasowa == null, "Działka ewidencyjna nie jest działką dotychczasową."); _dzialkiPodzielone.Add(dzialkaNowa); }
public override bool nieznany(DzialkaEwidencyjna dzialka) { bool?pomierzone = pomierzonePunkty(dzialka); return(!pomierzone.HasValue); }