Example #1
0
        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)));
        }
Example #2
0
 /// <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);
     }
 }
Example #3
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();
            }
        }
Example #5
0
 public SeasonColor(SeasonInformation seasonInformation)
 {
     Color = seasonInformation.Color;
 }
Example #6
0
 public SeasonText(SeasonInformation seasonInformation)
 {
     Title = seasonInformation.Title;
     Body  = seasonInformation.Body;
 }