コード例 #1
0
        /// <summary>
        /// משנה עונה לעונה מוגדרת כאשר יש מספיק מידע המוכיח את השוני המשמעותי בעונה
        /// </summary>
        /// <param name="seasonType"></param>
        /// <param name="num"></param>
        public static void DefineSeasonInfo(int seasonType, int num)
        {
            Hospital_DBEntities2 db          = new Hospital_DBEntities2();
            List <Seasons>       tempSeasons = new List <Seasons>();
            Seasons tempLongSeasons          = new Seasons();

            switch (seasonType)
            {
            case 1: { db.Seasons.Add(new Seasons {
                        Date = DateTime.Today.Date, IsDefined = true, NumOfDays = 1
                    }); db.SaveChanges(); tempSeasons = BLManager.GetCurrentDate(false); tempLongSeasons = BLManager.GetLongDateSeason(); BLManager.CurrentDate = db.Seasons.Last(); } break;

            case 2: { db.Seasons.Add(new Seasons {
                        HebrewDate = DateTime.Today.Date, IsDefined = true, NumOfDays = 1
                    }); db.SaveChanges(); tempSeasons = BLManager.GetCurrentHeberewDate(false); tempLongSeasons = BLManager.GetLongHeberewDateSeason(); BLManager.CurrentHeberewDate = db.Seasons.Last(); } break;

            case 3: { db.Seasons.Add(new Seasons {
                        DayOfWeek = (int)DateTime.Today.DayOfWeek, IsDefined = true, NumOfDays = 1
                    }); tempSeasons = BLManager.GetCurrentDayOfWeek(false); BLManager.CurrentDayOfWeek = db.Seasons.Last(); } break;
            }

            db.SaveChanges();
            List <SeasonInformation> seasonTempInfo = new List <SeasonInformation>();

            if (tempLongSeasons == null)
            {
                //מקבץ את כל המידע לתקופה של תקופת יום בשבוע מסויימת לא מוגדרות
                CombineSeasons(GetInfoForSeasonList(tempSeasons), num, db.Seasons.ToList().Last().SeasonCode);
            }
            else
            {
                if (seasonType == 1)
                {
                    BLManager.CurrentDate = tempLongSeasons;
                }
                else
                {
                    BLManager.CurrentHeberewDate = tempLongSeasons;
                }
                CombineSeasons(GetInfoForSeasonList(tempSeasons), 5, tempLongSeasons.SeasonCode);
                db.Seasons.Remove(db.Seasons.Last());
            }

            db.SeasonInformation.ToList().ForEach(se => tempSeasons.ForEach(s => { if (se.SeasonCode == s.SeasonCode)
                                                                                   {
                                                                                       seasonTempInfo.Add(se);
                                                                                   }
                                                                            }));
            db.SeasonInformation.RemoveRange(seasonTempInfo);
            db.SaveChanges();
            List <int> listCode = tempSeasons.Select(i => i.SeasonCode).ToList();

            db.Seasons.RemoveRange(db.Seasons.Where(item => listCode.Any(item2 => item2 == item.SeasonCode)));
        }