Example #1
0
        //מוסיפה בקשות מקובץ אקסל
        public void addRequestFromExcel()
        {
            requestDTO   r    = new requestDTO();
            StreamReader read = new StreamReader(@"d:\request.csv", Encoding.Default);
            string       str  = read.ReadToEnd();

            string[] arr = str.Split('\n');
            for (int i = 0; i < arr.Length; i++)
            {
                int      j    = 0;
                string[] arr1 = arr[i].Split(',');
                r.code      = int.Parse(arr1[j++]);
                r.id_parent = arr1[j++];
                r.from_hour = TimeSpan.Parse(arr1[j++]);
                r.to_hour   = TimeSpan.Parse(arr1[j++]);
                requestBL rBL = new requestBL();
                rBL.AddRequest(r);
                Console.WriteLine();
            }
            Console.ReadLine();
        }
        //public List<studens> SortByEmail(List<studens> ls)
        //{
        //    return ls.OrderBy(x => x.parents.email).ToList();
        //}
        //פונקצית הערכה
        //מקבלת אוסף -ליסט- של השיבוץ של כל בית הספר
        //ומחזירה ציון לשיבוץ
        //לפי
        //1. פרק הזמן שאמא לכמה בנות שוהה בבית הספר
        //2. רמת סטיה מבקשות של אמהות
        private int mark(List <scheduling> l)
        {
            List <parents> lst_par = perentsDAL.GetParentByCodeInstation(this.idMosad);
            double         avg = 0;
            int            mark = 100, cntExp = 0;
            TimeSpan       from = new TimeSpan(00, 0, 0);
            TimeSpan       to   = new TimeSpan(00, 0, 0);
            TimeSpan       min  = new TimeSpan(23, 59, 0);
            TimeSpan       max  = new TimeSpan(00, 00, 0);
            TimeSpan       temp;
            perentsBL      pars = new perentsBL();
            requestBL      r    = new requestBL();

            //1. פרק הזמן שאמא לכמה בנות שוהה בבית הספר
            foreach (parents p in lst_par)
            {
                List <studens> lst_k = pars.get_Allkids(p.id);
                min = new TimeSpan(23, 59, 0);
                max = new TimeSpan(00, 00, 0);
                for (int i = 0; i < lst_k.Count(); i++)
                {
                    //השוואה של timespan
                    temp = l.Where(x => x.id_student == lst_k[i].id).FirstOrDefault().hour_;
                    if (temp > (max))
                    {
                        max = temp;
                    }
                    if (temp < min)
                    {
                        min = temp;
                    }
                }
                avg = (max - min).TotalMinutes;
                avg = (max - min).TotalMinutes / lst_k.Count();
                if (avg > 30)
                {
                    cntExp++;
                }
            }
            mark   = mark - cntExp;
            cntExp = 0;
            //2.רמת סטיה מבקשות של אמהות
            //עובר על רשימת האימהות
            foreach (parents pa in lst_par)
            {
                List <studens> lst_k = pars.get_Allkids(pa.id);
                List <studens> st;
                TimeSpan       scheTime = new TimeSpan();
                parents        p        = new parents();
                request        h        = allRquest.Where(rr => rr.id_parent == pa.id).FirstOrDefault();
                if (h != null)
                {
                    from = h.from_hour;
                    to   = h.to_hour;
                    st   = lst_studens.Where(y => y.id_parent == pa.id).ToList();
                    //שולף מרשימת השיבוצים שהתקבלה את השעות של הילדים של ההורה
                    foreach (studens item in lst_k)
                    {
                        scheTime = l.Where(e => e.id_student == item.id).Select(t => t.hour_).FirstOrDefault();
                        if (scheTime < from || scheTime > to)
                        {
                            cntExp++;
                        }
                    }
                }
            }

            mark = mark - cntExp;
            return(mark);
        }