示例#1
0
        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>());
        }
示例#2
0
        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>());
        }
示例#3
0
        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>());
        }