protected override IEnumerable <SendMessageHistoryModel> ConvertModel(IEnumerable <SendMessageHistoryModel> models) { return(SendMessageHistoryProfile.ConvertModel(models, new UnitOfWork(context))); }
protected override ReportDownloadModel ProduceFile(SectorSendMessageStatisticCriteriaModel criteria, IEnumerable <SendMessageStatisticModel> models) { switch (criteria.DownloadType) { case DownloadType.Statistic: { var result = models.Select(p => new { 部門 = p.DepartmentName, 姓名 = p.FullName, 發送通數 = p.TotalReceiverCount, 發送扣點 = p.TotalMessageCost, }); return(ProduceZipFile( fileName: "部門通數統計.zip", zipEntries: new Dictionary <string, DataTable> { { "部門通數統計", Converter.ToDataTable(result.ToList()) }, } )); } case DownloadType.All: { IEnumerable <SendMessageHistoryModel> historyModels = (Mapper.Map <IEnumerable <SendMessageHistory>, IEnumerable <SendMessageHistoryModel> >(GetSendMessageHistory(criteria))).ToList(); //////////////////////////////////////// // protected override IEnumerable<SectorSendMessageHistoryModel> ConvertModel(IEnumerable<SectorSendMessageHistoryModel> models) //var deaprtmentRepository = this.unitOfWork.Repository<Department>(); //var userRepository = this.unitOfWork.Repository<ApplicationUser>(); //int rowNo = 0; //foreach (var model in models) //{ // model.RowNo = ++rowNo; // if (model.DepartmentId.HasValue) // { // model.DepartmentName = deaprtmentRepository.GetById(model.DepartmentId.Value).Name; // } // var user = userRepository.GetById(model.CreatedUserId); // model.UserName = user.UserName; // model.FullName = user.FullName; // model.DeliveryStatusChineseString = model.DeliveryStatusString; // TODO: DeliveryStatus 中文說明 //} historyModels = SendMessageHistoryProfile.ConvertModel(historyModels, new UnitOfWork(context)); //////////////////////////////////////// TimeSpan clientTimezoneOffset = ClientTimezoneOffset; string timeFormat = Converter.Every8d_SentTime; var result = historyModels.Select(p => new { 簡訊類別 = AttributeHelper.GetColumnDescription(p.SendMessageType), 部門 = p.DepartmentName, 姓名 = p.FullName, 帳號 = p.UserName, 門號 = p.DestinationAddress, 發送時間 = Converter.ToLocalTimeString(p.SendTime, clientTimezoneOffset, timeFormat), 收訊時間 = Converter.ToLocalTimeString(p.SentDate, clientTimezoneOffset, timeFormat), 簡訊類別描述 = p.SendTitle, 發送內容 = p.SendBody, 狀態 = p.DeliveryStatusChineseString, 發送扣點 = p.MessageCost, }); return(ProduceZipFile( fileName: "部門發送紀錄.zip", zipEntries: new Dictionary <string, DataTable> { { "部門發送紀錄", Converter.ToDataTable(result.ToList()) }, } )); } default: throw new Exception(string.Format("尚未實作下載類型為{0}的下載內容", criteria.DownloadType.ToString())); } }