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