public async Task <PartialViewResult> GetFreeTimesAnalysis(int idAnalysis, DateTime date)
        {
            List <TimeSpan>    freeTimes = new List <TimeSpan>();
            LaboratoryAnalysis analysis  = await db.LaboratoryAnalyses.FindAsync(idAnalysis);

            //Проверяемое время
            TimeSpan?checkTime = analysis.WorkTime.GetStartTime(date.DayOfWeek),
                    endTime    = analysis.WorkTime.GetEndTime(date.DayOfWeek);

            if (checkTime == null)
            {
                return(PartialView(null));
            }

            //Получение времени начала записей всех пациентов в данный день к данному врачу
            List <TimeSpan> busyTimes = (from busyTime in analysis.BusyTimes
                                         where busyTime.Day == date
                                         orderby busyTime.StartTime
                                         select busyTime.StartTime).ToList();

            while (checkTime + analysis.ReceptionTime <= endTime)
            {
                freeTimes.Add((TimeSpan)checkTime);
                checkTime += analysis.ReceptionTime;
            }
            //Исключение из свободного времени занятое
            freeTimes = freeTimes.Except(busyTimes).ToList();
            return(PartialView("GetFreeTimes", freeTimes));
        }
Exemple #2
0
        public async Task <RedirectToRouteResult> AddAnalysis([Bind(Exclude = "ReceptionTime")] LaboratoryAnalysis analysis, int receptionTime)
        {
            analysis.ReceptionTime = new TimeSpan(0, receptionTime, 0);
            db.LaboratoryAnalyses.Add(analysis);
            await db.SaveChangesAsync();

            return(RedirectToAction("Index", "Cabinet"));
        }
Exemple #3
0
        public async Task <ActionResult> Analysis(int id)
        {
            LaboratoryAnalysis analysis = await db.LaboratoryAnalyses.FindAsync(id);

            return(View(analysis));
        }