public ShowHospitalRegistrationPlacesByDateCommandAnswer ShowHospitalRegistrationPlacesByDate( ShowHospitalRegistrationPlacesByDateCommand command) { var user = _tokenManager.GetUserByToken(command.Token); var hospitalId = GetHospitalIdByUserId(user.Id); var sectionsAccessIds = _hospitalUserSectionAccessRepository.GetModels().Where(model => !model.IsBlocked).Where(model => model.HospitalUserId == user.Id) .Select(model => model.HospitalSectionProfileId).ToList(); var hospitalSectionProfiles = _hospitalSectionProfileRepository.GetModels(); var date = command.Date.Date; var statisticList = this.GetStatisticList(date, date, hospitalId, user.Id); var completeCount = this.GetHospitalProfileCount(hospitalId, user.Id); var table = ((IDbSet<HospitalSectionProfileStorageModel>) hospitalSectionProfiles) .Where(model => model.HospitalId == hospitalId) .Where(model => model.EmptyPlaceStatistics.Any(storageModel => storageModel.Date == command.Date)) .Where(model => sectionsAccessIds.Contains(model.Id)) .Select(model => new HospitalRegistrationTableItem { HospitalProfileId = model.Id, HospitalProfileName = model.Name, StatisticItems = model.EmptyPlaceStatistics .Where(storageModel => storageModel.Date == command.Date) .SelectMany(storageModel => storageModel.EmptyPlaceByTypeStatistics) .Select(storageModel => new HospitalRegistrationCountStatisticItem { Sex = storageModel.Sex, OpenCount = storageModel.Count, RegisteredCount = storageModel.Reservations.Count(reservationModel => reservationModel.Status == ReservationStatus.Opened), FreePlacesCount = storageModel.Count - storageModel.Reservations.Count(reservationModel => reservationModel.Status == ReservationStatus.Opened) }) .ToList() }).ToList(); var statistics = statisticList.Count(model => model.Date.Date == date); return new ShowHospitalRegistrationPlacesByDateCommandAnswer { Token = (Guid) command.Token, Date = command.Date, Table = table, IsCompleted = statistics == completeCount, HasDialogMessage = command.HasDialogMessage != null && command.HasDialogMessage.Value, DialogMessage = command.DialogMessage }; }
public ActionResult Step2(ShowHospitalRegistrationPlacesByDateCommand command) { var answer = _hospitalRegistrationsService.ShowHospitalRegistrationPlacesByDate(command); return View(answer); }