private List <CalisanRaporBir> analizEtCokGorevliCalisanlari(List <CalisanGorevlendirme> gorevlendirmeListe, List <int> cokGorevliCalisanIdListe, List <CalisanRaporBir> oncekiAnalizListesi) { try { CalisanGorevlendirme gorevlendirme = null; CalisanRaporBir rapor = null; bool getirilsinMiSadeceResmiGorev = true; if (gorevlendirmeListe == null) { throw new ArgumentNullException(); } if (cokGorevliCalisanIdListe == null) { throw new ArgumentNullException(); } if (oncekiAnalizListesi == null) { throw new ArgumentNullException(); } //çok görevli çalışanların de jure görevlendirmelerinin hesaplanması foreach (int cokGorevliCalisanId in cokGorevliCalisanIdListe) { gorevlendirme = this.getirCalisaninGorevlendirmesi(gorevlendirmeListe, cokGorevliCalisanId, getirilsinMiSadeceResmiGorev); if (gorevlendirme == null) { BosReferansHatasi hata = new BosReferansHatasi(Arac.AlSinifYolu <CalisanGorevlendirme>(), Arac.AlHataLokasyonu <GorevlendirmeIsKurali>(229)); this.yazHata(hata); continue; } rapor = new CalisanRaporBir(gorevlendirme.Unvani); oncekiAnalizListesi = this.ekleListeyeYoksaYadaBirArttir(oncekiAnalizListesi, rapor); if (oncekiAnalizListesi == null) { throw new IslemBasarisizHatasi(); } } return(oncekiAnalizListesi); } catch (ArgumentNullException) { } catch (IslemBasarisizHatasi hata) { this.yazHata(hata); } catch (Exception hata) { this.yazHata(hata); } return(new List <CalisanRaporBir>()); }
private List <CalisanRaporBir> ekleListeyeYoksaYadaBirArttir(List <CalisanRaporBir> liste, CalisanRaporBir rapor) { try { int calisanSayisi = int.MinValue; CalisanRaporBir eskiRapor = null; if (liste == null) { throw new ArgumentNullException(); } if (rapor == null) { throw new ArgumentNullException(); } if (liste.Any(p => p.Unvani.Anahtar == rapor.Unvani.Anahtar)) { eskiRapor = liste.FirstOrDefault(p => p.Unvani.Anahtar == rapor.Unvani.Anahtar); if (eskiRapor != null) { calisanSayisi = eskiRapor.CalisanSayisi; liste.Remove(eskiRapor); rapor.CalisanSayisi += calisanSayisi; } else { BosReferansHatasi hata = new BosReferansHatasi(Arac.AlSinifYolu <CalisanRaporBir>(), Arac.AlHataLokasyonu <GorevlendirmeIsKurali>(160)); this.yazHata(hata); } } liste.Add(rapor); return(liste); } catch (ArgumentNullException) { } catch (Exception hata) { this.yazHata(hata); } return(new List <CalisanRaporBir>()); }
private List <CalisanRaporBir> analizEtTekGorevliCalisanlari(List <CalisanGorevlendirme> gorevlendirmeListe, out List <int> cokGorevliCalisanIdListe) { try { List <Calisan> calisanListe = new List <Calisan>(); CalisanRaporBir rapor = null; List <CalisanRaporBir> raporListe = new List <CalisanRaporBir>(); List <int> liste = new List <int>(); if (gorevlendirmeListe == null) { throw new ArgumentNullException(); } //tek görevli çalışanları analiz ediyorum. foreach (CalisanGorevlendirme deger in gorevlendirmeListe) { if (deger == null || deger.Calisani == null || deger.Unvani == null) { BosReferansHatasi hata = this._hataIsKurali.alHataNesnesi(Arac.AlHataLokasyonu <GorevlendirmeIsKurali>(321), deger, deger.Calisani, deger.Unvani); this.yazHata(hata); continue; } if (calisanListe.Any(p => p.Anahtar == deger.Calisani.Anahtar)) { continue; } calisanListe.Add(deger.Calisani); if (gorevlendirmeListe.Count(p => p.Calisani.Anahtar == deger.CalisanId) == Sabitler.Bir) { //tek görevli çalışan rapor = new CalisanRaporBir(deger.Unvani); raporListe = this.ekleListeyeYoksaYadaBirArttir(raporListe, rapor); if (raporListe == null) { throw new IslemBasarisizHatasi(); } } else { liste.Add(deger.Calisani.Anahtar); } } cokGorevliCalisanIdListe = liste; return(raporListe); } catch (ArgumentNullException) { } catch (IslemBasarisizHatasi hata) { this.yazHata(hata); } catch (Exception hata) { this.yazHata(hata); } cokGorevliCalisanIdListe = new List <int>(); return(new List <CalisanRaporBir>()); }