private Task <Either <DomainError, SeasonCollection> > Fetch(SeasonInformation seasonInformation) { // TODO: Validate Year if necessary var year = OptionUtils.UnpackOption(seasonInformation.Year.Value, (ushort)0); return(_animeInfoRepository.GetBySeason(seasonInformation.Season, year) .MapAsync(r => Mapper.ProjectSeasonCollection(year, seasonInformation.Season.Value, r))); }
/// <summary> /// זמן ההמתנה המשוער בהתחשב בנתונים ההסטוריים ובנתוני זמן אמת ///היחס בין מספר אנשי הצוות לבין הממתינים הינו הקובע את משך זמן ההמתנה המשוער /// </summary> public static int CalcEstimatedWaitingTime(SeasonInformation historyInfo) { try { int currentStaffNum = BLManager.CurrentStatusDepartmentList .Find(d => d.DepartmentCode == historyInfo.DepartmentCode).StaffNum; int currentWaitersNum = BLManager.CurrentStatusDepartmentList .Find(d => d.DepartmentCode == historyInfo.DepartmentCode).DepartmentQueue.Count(); //היחס בין מספר אנשי הצוות לבין הממתינים הינו הקובע את משך זמן ההמתנה המשוער return((currentWaitersNum / currentStaffNum) * historyInfo.Ratio); } catch (Exception) { return(0); } }
/// <summary> /// מחשבת את זמן ההמתנה המשוער במחלקה ובאגף המיון יחד /// עפ"י התאריך-העברי הלועזי והיום בשבוע והמצב הנוכחי במחלקה /// </summary> /// <param name="departmentCode"></param> public void CalcWaitingTime(int departmentCode) { Hospital_DBEntities2 db = new Hospital_DBEntities2(); SeasonInformation dayOfWeekAvg = null; SeasonInformation dateAvg = null; SeasonInformation heberewDateAvg = null; if (BLManager.CurrentDayOfWeek != null) { dayOfWeekAvg = BLManager.GetSeasonInformation(BLManager.CurrentDayOfWeek.SeasonCode, departmentCode, true); } //בגלל שיש שוני בין השנים והמועדים הלועזיים תלויים ביום בחודש ובחודש לכן היחס ליום הינו אילו היה חל בשנה בו נשמר המידע if (BLManager.CurrentDate != null) { dateAvg = BLManager.GetSeasonInformation(BLManager.CurrentDate.SeasonCode, departmentCode, true); } if (BLManager.CurrentHeberewDate != null) { heberewDateAvg = BLManager.GetSeasonInformation(BLManager.CurrentHeberewDate.SeasonCode, departmentCode, true); } if (dayOfWeekAvg == null && heberewDateAvg == null && dateAvg == null) { WaitingTime += StatisticsCalculations.CalcEstimatedWaitingTime(db.Departments.FirstOrDefault(d => d.DepartmentCode == departmentCode).SeasonInformation.FirstOrDefault(si => si.SeasonCode == db.Seasons.FirstOrDefault(s => s.HebrewDate == null && s.Date.Value == null && s.DayOfWeek == null).SeasonCode)); } else if (dayOfWeekAvg != null && heberewDateAvg == null && dateAvg == null) { WaitingTime += StatisticsCalculations.CalcEstimatedWaitingTime(dayOfWeekAvg); } else if (heberewDateAvg != null && dateAvg == null) { WaitingTime += StatisticsCalculations.CalcEstimatedWaitingTime(heberewDateAvg); } else if (heberewDateAvg == null && dateAvg != null) { WaitingTime += StatisticsCalculations.CalcEstimatedWaitingTime(dateAvg); } else if (heberewDateAvg != null && dateAvg != null)//אם יום מסויים הינו גם תאריך עברי מיוחד וגם תאריך לועזי מיוחד משוקלל הממוצע של שניהם { WaitingTime += StatisticsCalculations.CalcEstimatedWaitingTime(heberewDateAvg); WaitingTime += StatisticsCalculations.CalcEstimatedWaitingTime(dateAvg); WaitingTime -= StatisticsCalculations.CalcEstimatedWaitingTime(BLManager.GetSeasonInformation(db.Seasons.FirstOrDefault(s => s.NumOfDays == 365).SeasonCode, departmentCode, true)); } else //אין אף תאריך מיוחד סימן הזיהוי של המידע הכללי הינו אורך של 365 ימים { WaitingTime += StatisticsCalculations.CalcEstimatedWaitingTime(BLManager.GetSeasonInformation(db.Seasons.FirstOrDefault(s => s.NumOfDays == 365).SeasonCode, departmentCode, true)); } }
/// <summary> /// שומר/משכלל את הממוצעים היומיים במסד הנתונים /// </summary> /// <param name="information"></param> public void SetSeasonInfoInDB(SeasonInformation information) { Hospital_DBEntities2 db = new Hospital_DBEntities2(); information = db.SeasonInformation.Where(i => i.InfoCode == information.InfoCode).First(); information.WaitersAvg = (information.WaitersAvg * information.Whidnesstochange + WaitersAvg) / ++information.Whidnesstochange; information.StaffAvg = (information.StaffAvg * (information.Whidnesstochange - 1) + StaffAvg) / information.Whidnesstochange; information.WaitingTimeAvg = (int)(information.WaitingTimeAvg * (information.Whidnesstochange - 1) + DayWaitingAvg) / information.Whidnesstochange; db.SaveChanges(); //האם להעביר מידע לתקופה להיסטורי לפי מרחב המדגם if ((information.Seasons.DayOfWeek != null && information.Whidnesstochange == 52 /*(one year)*/) || (information.Seasons.DayOfWeek == null && information.Whidnesstochange == 5 /*(5 years)*/)) { information.Ishistory = true; db.SaveChanges(); db.SeasonInformation.Add(new SeasonInformation { Ishistory = false, DepartmentCode = information.DepartmentCode, SeasonCode = information.SeasonCode, AddingDate = DateTime.Today }); db.SaveChanges(); } }
public SeasonColor(SeasonInformation seasonInformation) { Color = seasonInformation.Color; }
public SeasonText(SeasonInformation seasonInformation) { Title = seasonInformation.Title; Body = seasonInformation.Body; }