Ejemplo n.º 1
0
        public void DodajDziałki(IZawierającyDziałki staryStan, IZawierającyDziałki nowyStan, IEnumerable <IdentyfikatorDziałki> działki)
        {
            _staryStan = staryStan;
            _nowyStan  = nowyStan;
            var     zmienione       = 0;
            var     usunięte        = 0;
            var     dodane          = 0;
            Działka ostatniaDziałka = null;

            //wykaż istniejące działki
            foreach (var para in tylkoIstniejące(działki).OrderBy(t => t.Item2, new DziałkaComparer()))
            {
                ostatniaDziałka = dodajIstniejącaPara(para.Item1, para.Item2);
                zmienione++;
            }
            //wykaż usunięte działki
            foreach (var działka in tylkoUsunięte(działki))
            {
                if (WykażUsunięte)
                {
                    addUsunięta(działka);
                }
                Logger.info("stan nowy nie zawiera działki: " + działka.Id);
                usunięte++;
            }
            //wykaż dodane działki
            foreach (var działka in tylkoDodane(działki))
            {
                if (WykażDodane)
                {
                    addDodana(działka);
                }
                Logger.info("stan dotychczasowy nie zawiera działki: " + działka.Id);
                dodane++;
            }
            Logger.info("działki zmienione, usunięte lub dodane: " + (zmienione + usunięte + dodane));
            podstawNagłówek(ostatniaDziałka);
        }
Ejemplo n.º 2
0
        static void Main(string[] args)
        {
            PokażLogo(args);
            if (args.Length < 1)
            {
                Logger.błąd("Nie podano roboczego katalogu.");
                PokażKoniec();
                return;
            }
            _roboczyKatalog = args[0];
            if (Directory.Exists(_roboczyKatalog) == false)
            {
                Logger.błąd("Roboczy katalog nie istnieje: " + _roboczyKatalog);
                PokażKoniec();
                return;
            }
            Console.WriteLine("Roboczy katalog: {0}", _roboczyKatalog);
            if (args.Length < 2)
            {
                Logger.błąd("Nie podano starego pliku SWDE.");
                PokażKoniec();
                return;
            }
            _starePath = Path.Combine(_roboczyKatalog, args[1]);
            if (File.Exists(_starePath) == false)
            {
                Logger.błąd("Plik nie istnieje: " + _starePath);
                PokażKoniec();
                return;
            }
            if (args.Length < 3)
            {
                Logger.błąd("Nie podano nowego pliku SWDE.");
                PokażKoniec();
                return;
            }
            _nowePath = Path.Combine(_roboczyKatalog, args[2]);
            if (File.Exists(_nowePath) == false)
            {
                Logger.błąd("Plik nie istnieje: " + _nowePath);
                PokażKoniec();
                return;
            }
            if (args.Length < 4)
            {
                Logger.błąd("Nie określono filtru działek.");
                PokażKoniec();
                return;
            }
            _działkiPath = Directory.GetFiles(_roboczyKatalog, args[3], SearchOption.TopDirectoryOnly);
            if (args.Length < 5)
            {
                Logger.błąd("Nie podano szablonu wykazu.");
                PokażKoniec();
                return;
            }
            _szablonZmian = Path.Combine(_exeKatalog, args[4]);
            if (File.Exists(_szablonZmian) == false)
            {
                Logger.błąd("Plik nie istnieje: " + _szablonZmian);
                PokażKoniec();
                return;
            }
            //Przygotuj docelowy katalog
            _docelowyKatalog = Path.Combine(_roboczyKatalog, DateTime.Now.ToString("yyyyMMddTHHmmss"));
            if (!Directory.Exists(_docelowyKatalog))
            {
                Directory.CreateDirectory(_docelowyKatalog);
            }
            Console.WriteLine("Docelowy katalog: {0}", _docelowyKatalog);
            //Wczytaj repozytorium KERG
            _repozytoriumKERG = RepozytoriumKerg.WczytajPlik(Path.Combine(_exeKatalog, "KERG.txt"));
            //Wczytaj stan stary i nowy z plików SWDE
            Console.WriteLine("Stan dotychczasowy z pliku: " + _starePath.name());
            var słownik          = new SłownikOznaczenia();
            var czytnikOnaczenia = new CzytnikOznaczenia(słownik);

            czytnikOnaczenia.Wczytaj(Path.Combine(_exeKatalog, "uzytkiG5.csv"));
            var rozliczenie        = new Rozliczenie();
            var czytnikRozliczenia = new CzytnikRozliczenia(rozliczenie, słownik);

            if (_starePath.EndsWith("*.swd"))
            {
                _staryStan = new CzytnikOpisowegoSwde(_starePath);
            }
            else
            {
                czytnikRozliczenia.Wczytaj(_starePath);
                _staryStan = rozliczenie;
            }
            Console.WriteLine("Stan nowy z pliku: " + _nowePath.name());
            _nowyStan = new CzytnikOpisowegoSwde(_nowePath);
            var działki = PrzygotujDziałkiDoWykazu();
            //Zapisz wykazy obrębami
            var obrębyPogrupowane = działki.GroupBy(id => id.NumerObrębu());

            foreach (var działkiObrębu in obrębyPogrupowane)
            {
                ZapiszWykaz(działkiObrębu);
            }
            PokażKoniec();
        }