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); }
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(); }