示例#1
0
        public void DodajDziałkę(Działka działka)
        {
            if (działka == null)
            {
                throw new ArgumentNullException(paramName: "działka", message: "Działka jest null.");
            }
            if (działka.Any() == false)
            {
                throw new InvalidOperationException(message: "Działka nie zawiera żadnych klasoużytków.");
            }
            if (SzukajIdDziałki(działka.Id) != null)
            {
                throw new InvalidOperationException("Rozliczenie zawiera już działkę " + działka.Id);
            }
            int dzialkiPrzed = _działki.Count;

            _działki.Add(działka);
            var id = działka.Id;

            _indeksDziałek.Add(id.ToString(), działka);
            int dzialkiPo = _działki.Count;

            Kontrakt.ensures(dzialkiPrzed + 1 == dzialkiPo);
            Kontrakt.ensures(SzukajIdDziałki(id) != null);
        }
        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);
        }
示例#3
0
        Działka ParsujDziałkę(string linia)
        {
            var pola          = linia.Split(new [] { ' ' }, 2, StringSplitOptions.RemoveEmptyEntries);
            var identyfikator = IdentyfikatorDziałki.ParsujId(pola[0]);
            var powierzchnia  = Powierzchnia.ParsujMetry(pola[1]);
            var działka       = new Działka(identyfikator, powierzchnia);

            return(działka);
        }
        public static Działka WczytajJednąDziałkę(this ObiektSwde dze)
        {
            //var jdr = dze.GetRelacja("G5RJDR");
            //string g5ijr = jdr.GetAtrybut("G5IJR");
            string g5idd = dze.GetAtrybut("G5IDD");
            string g5pew = dze.GetAtrybut("G5PEW");
            string g5dzp = dze.GetAtrybut("G5DZP");
            bool   doAra = false;

            if (string.IsNullOrEmpty(g5dzp))
            {
                Logger.ostrzeżenie("pusta wartość atrybutu G5DZP: zapis powierzchni do metra: " + g5idd);
            }
            else if (g5dzp.Equals("1"))
            {
                doAra = false;
            }
            else if (g5dzp.Equals("2"))
            {
                doAra = true;
            }
            else
            {
                Logger.ostrzeżenie("niestandardowa wartość atrybutu G5DZP: " + g5dzp + " działki " + g5idd);
            }
            if (doAra && g5pew.EndsWith("00") == false)
            {
                doAra = false;
                Logger.ostrzeżenie("powierzchnia do metra jest oznaczona w opisie jako do ara: " + g5pew + " m2, działka " + g5idd);
            }
            var powierzchnia = Powierzchnia.ParsujMetry(g5pew);
            var id           = IdentyfikatorDziałki.ParsujIdG5(g5idd);
            //JednostkaRejestrowa jr = _indeksJednostek[JednostkaRejestrowa.parseG5(g5ijr).ToString()];
            var działka = new Działka(id, powierzchnia);

            działka.JestDoAra = doAra;
            return(działka);
        }
示例#5
0
 public IEnumerable <Klasoużytek> UnionUżytki(Działka działka)
 {
     return(działka.Union(this).OrderBy(u => u.ToString()));
 }