public ActionResult Show(int masterId, int?next) { var masterPerson = educatorEmploymentRepository.GetEducatorMasterPersonById(masterId); if (masterPerson != null) { var viewModel = EducatorEventsShowAllViewModel.Build(masterPerson, next); return(View(viewModel)); } return(View()); }
public FileStreamResult Excel(int masterId, int?next) { var masterPerson = educatorEmploymentRepository.GetEducatorMasterPersonById(masterId); if (masterPerson != null) { var viewModel = EducatorEventsShowAllViewModel.Build(masterPerson, next); return(File( GetXmlContentAsStream(masterPerson, viewModel), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", $"расписание преподавателя на семестр - {masterPerson.DisplayName} ({viewModel.From:dd MMMM yyyy} - {viewModel.To:dd MMMM yyyy} г. на дату {DateTime.Now:dd.MM}).xlsx")); } return(null); }
private Stream GetXmlContentAsStream(EducatorMasterPerson masterPerson, EducatorEventsShowAllViewModel viewModel) { var aggregatedEventDayModels = viewModel.EducatorEventsDays.Select(day => new AggregatedEventDayModel(day.DayString, day.DayStudyEvents.Select(aggregatedEvent => new AggregatedEventModel( aggregatedEvent.DateTime.Time.Value, string.Join("\n", aggregatedEvent.DateTime.Dates.Select(d => d.Value)), aggregatedEvent.Subject, aggregatedEvent.Cohort, aggregatedEvent.ShowCohort, aggregatedEvent.EventLocations.FirstOrDefault().DisplayName, string.Join("; ", aggregatedEvent.ContingentUnits.Select(cu => $"{cu.Name} ({cu.DivisionAndCourse})")), null)))); var stream = AppointmentsSpreadsheetsHelper.GetEducatorTimetableWorkbookStream(viewModel.From, viewModel.To, $"{masterPerson.LastName} {masterPerson.FirstName} {masterPerson.MiddleName}", aggregatedEventDayModels); return(stream); }