Пример #1
0
        /// <summary>
        /// Method for generating event reports - RS
        /// </summary>
        /// <param name="eventManagementReportQueryAc"></param>
        /// <param name="currentUserInstituteId"></param>
        /// <returns></returns>
        public async Task <EventManagementReportResponseAc> GenerateEventReportAsync(EventManagementReportQueryAc eventManagementReportQueryAc, int currentUserInstituteId)
        {
            #region Fetch details

            List <EventReportAc>     eventReportAcList      = new List <EventReportAc>();
            List <EventReportDetail> eventReportDetailsList = await _imsDbContext.EventReportDetails
                                                              .Where(x => x.InstituteId == currentUserInstituteId && x.SentOn.Date >= eventManagementReportQueryAc.StartDate.Date && x.SentOn.Date <= eventManagementReportQueryAc.EndDate.Date)
                                                              .ToListAsync();

            foreach (EventReportDetail eventReportDetail in eventReportDetailsList)
            {
                eventReportAcList.Add(new EventReportAc
                {
                    Format  = EnumHelperService.GetDescription(eventReportDetail.TemplateFormat),
                    To      = eventReportDetail.To,
                    Subject = eventReportDetail.Subject,
                    Message = eventReportDetail.Message,
                    SentOn  = eventReportDetail.SentOn.ToString("dd-MMM-yyyy")
                });
            }

            #endregion

            #region Generate file

            string fileName = "Event_Report_" + DateTime.Now.Day.ToString("00") + "_" + DateTime.Now.Month.ToString("00") + "_" + DateTime.Now.Year.ToString("0000") + ".xlsx";
            return(new EventManagementReportResponseAc()
            {
                FileName = fileName,
                ResponseType = "application/ms-excel",
                FileByteArray = ExcelHelperService.GenerateExcelFromList(eventReportAcList, string.Empty)
            });

            #endregion
        }
Пример #2
0
        public async Task <FileResult> GenerateEventReportAsync([FromBody] EventManagementReportQueryAc eventManagementReportQueryAc)
        {
            int currentUserInstituteId = await GetUserCurrentSelectedInstituteIdAsync();

            EventManagementReportResponseAc eventManagementReportResponse = await _eventManagementRepository.GenerateEventReportAsync(eventManagementReportQueryAc, currentUserInstituteId);

            return(File(eventManagementReportResponse.FileByteArray, eventManagementReportResponse.ResponseType, eventManagementReportResponse.FileName));
        }