예제 #1
0
 public Klasouzytek(string ofu, string ozu, string ozk, Powierzchnia powierzchnia)
     : base(powierzchnia)
 {
     _ofu = ofu;
     _ozu = ozu;
     _ozk = ozk;
 }
예제 #2
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);
        }
예제 #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
        private Klasouzytek parseKlasouzytek(string linia)
        {
            string[]     pola         = linia.Split(new char[] { ' ' }, 2, StringSplitOptions.RemoveEmptyEntries);
            string       oznaczenie   = pola[0];
            Powierzchnia powierzchnia = Powierzchnia.parseMetry(pola[1]);

            string[]    klu         = _klu.map(oznaczenie);
            Klasouzytek klasouzytek = new Klasouzytek(klu[0], klu[1], klu[2], powierzchnia);
            string      ozn         = klasouzytek.oznaczenie(_klu);

            Kontrakt.ensures(oznaczenie.Equals(ozn), "Odtworzenie oznaczenia nie jest możliwe: " + oznaczenie + " z " +
                             klasouzytek.ToString() + " = " + ozn);
            return(klasouzytek);
        }
예제 #5
0
        public static bool powyzejOdchylki(this Powierzchnia nowa, Powierzchnia dotychczasowa)
        {
            long pg = nowa.metryKwadratowe();
            long pe = dotychczasowa.metryKwadratowe();

            if (pg == pe)
            {
                return(false);                                     //Powierzchnia 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);

            if (drAbsolute <= 3)
            {
                return(false);
            }
            return(drAbsolute > dpRounded);
        }
예제 #6
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()));
        }
예제 #7
0
 protected ObiektPowierzchniowy(Powierzchnia powierzchnia)
 {
     Kontrakt.requires(powierzchnia != null);
     _powierzchnia = powierzchnia;
 }
예제 #8
0
 public void powierzchnia(Powierzchnia powierzchnia)
 {
     _powierzchnia = powierzchnia;
 }