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)); }
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")); }
public async Task <ActionResult> Analysis(int id) { LaboratoryAnalysis analysis = await db.LaboratoryAnalyses.FindAsync(id); return(View(analysis)); }