예제 #1
0
        private Stream GetWeekExcelContentAsStream(StudentGroup studentGroup, StudentGroupEventsWeekModel model, DateTime from, DateTime to)
        {
            var eventDayModels = model.Days.Select(day =>
                                                   new EventDayModel(day.DayString, day.DayStudyEvents.Select(@event =>
                                                                                                              new EventModel(
                                                                                                                  @event.DateTime.Time.Value,
                                                                                                                  @event.Subject,
                                                                                                                  @event.Cohort,
                                                                                                                  @event.ShowCohort,
                                                                                                                  string.Join("\n", @event.EventLocations.Select(el => el.DisplayName)),
                                                                                                                  string.Join("\n", @event.EventLocations.Select(el => string.Join("; ", el.Educators.Select(e => e.Name))))
                                                                                                                  ))));
            var stream = AppointmentsSpreadsheetsHelper.GetStudentGroupWeekTimetableWorkbookStream(from, to,
                                                                                                   $"{studentGroup.Name}", eventDayModels);

            return(stream);
        }
예제 #2
0
        public FileStreamResult ExcelWeek(int studentGroupId, DateTime?weekMonday)
        {
            var defaultWeekStart = DateTimeHelper.GetWeekStart(DateTime.Today);
            var from             = weekMonday ?? defaultWeekStart;
            var to           = from.AddDays(7);
            var studentGroup = studentGroupRepository.GetStudentGroupById(studentGroupId);

            if (studentGroup != null)
            {
                var model = StudentGroupEventsWeekModel.Build(studentGroup, from, to);
                return(File(
                           GetWeekExcelContentAsStream(studentGroup, model, from, to),
                           "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
                           $"расписание {studentGroup.Name} {from}-{to}.xlsx"));
            }
            return(null);
        }