public static bool uległaZmianie(this Działka staraDzialka, Działka nowaDzialka)
        {
            if (!nowaDzialka.Powierzchnia.Equals(staraDzialka.Powierzchnia))
            {
                return(true);                                                             //niezgodna powierzchnia działki
            }
            if (nowaDzialka.Count() != staraDzialka.Count())
            {
                return(true);                                             //niezgodna liczba użytków
            }
            var użytki = staraDzialka.UnionUżytki(nowaDzialka);

            foreach (var użytek in użytki)
            {
                Klasoużytek stary = staraDzialka.SzukajUżytku(użytek);
                Klasoużytek nowy  = nowaDzialka.SzukajUżytku(użytek);
                if (stary == null || nowy == null)
                {
                    return(true);                               //dodany/usunięty użytek
                }
                Powierzchnia stara = stary.powierzchnia();
                Powierzchnia nowa  = nowy.powierzchnia();
                if (!nowa.Equals(stara))
                {
                    return(true);                     //inna powierzchnia użytków
                }
                //if (nowa.powyzejOdchylki(stara)) return true; //powyżej odchyłki
                Kontrakt.assert(stary.Equals(nowy), "Różne oznaczenie użytku: " + stary.ToString());
            }
            return(false);
        }
Esempio n. 2
0
        int WczytajKlasoużytki(DokumentSwde swde)
        {
            var użytki = swde.GetObiektyKlasy("G5KLU");

            foreach (var klu in użytki)
            {
                string               g5ofu         = klu.GetAtrybut("G5OFU");
                string               g5ozu         = klu.GetAtrybut("G5OZU");
                string               g5ozk         = klu.GetAtrybut("G5OZK");
                string               g5pew         = klu.GetAtrybut("G5PEW");
                Powierzchnia         powierzchnia  = Powierzchnia.ParsujMetry(g5pew);
                Klasoużytek          klasouzytek   = new Klasoużytek(g5ofu, g5ozu, g5ozk, powierzchnia);
                var                  dze           = klu.GetRelacja("G5RDZE");
                string               g5idd         = dze.GetAtrybut("G5IDD");
                IdentyfikatorDziałki identyfikator = IdentyfikatorDziałki.ParsujIdG5(g5idd);
                var                  id            = identyfikator.ToString();
                if (_indeksDziałek.ContainsKey(id))
                {
                    _indeksDziałek[id].DodajUżytek(klasouzytek);
                }
                else
                {
                    Logger.ostrzeżenie("nie można dodać użytku " + klasouzytek.ToString() + " do działki " + id);
                }
            }
            return(użytki.Count());
        }
Esempio n. 3
0
        Klasoużytek ParsujKlasoużytek(string linia)
        {
            var pola         = linia.Split(new [] { ' ' }, 2, StringSplitOptions.RemoveEmptyEntries);
            var ozn          = pola.First();
            var powierzchnia = Powierzchnia.ParsujMetry(pola[1]);
            var oznaczenie   = _słownik.SzukajOznaczenia(ozn);
            var użytek       = new Klasoużytek(oznaczenie.ofu, oznaczenie.ozu, oznaczenie.ozk, powierzchnia);

            //Kontrakt.ensures(oznaczenie.Equals(ozn),
            //    "Odtworzenie oznaczenia nie jest możliwe: " + oznaczenie + " z " +
            //    użytek.ToString() + " = " + ozn);
            return(użytek);
        }