Пример #1
0
        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);
        }
Пример #2
0
        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);
        }
Пример #3
0
 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);
 }
Пример #4
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));
        }
Пример #5
0
        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()));
        }
Пример #6
0
 public bool zawieraId(IdentyfikatorDzialki id)
 {
     return(_indeks.ContainsKey(id.identyfikator()));
 }