/// <summary>
        /// 导出交易日志
        /// </summary>
        public async Task <FileDto> GetTransactionLogsToExcel(GetTransactionLogsInput input)
        {
            async Task <List <TransactionLogExportDto> > getListFunc(bool isLoadSoftDeleteData)
            {
                var query   = CreateTransactionLogsQuery(input);
                var results = await query
                              .OrderBy(input.Sorting)
                              .ToListAsync();

                var exportListDtos = results.MapTo <List <TransactionLogExportDto> >();

                if (exportListDtos.Count == 0)
                {
                    throw new UserFriendlyException(L("NoDataToExport"));
                }
                return(exportListDtos);
            }

            List <TransactionLogExportDto> exportData = null;


            exportData = await getListFunc(false);

            var fileDto   = new FileDto(L("TransactionLog") + L("ExportData") + ".xlsx", MimeTypeNames.ApplicationVndOpenxmlformatsOfficedocumentSpreadsheetmlSheet);
            var byteArray = await _excelExporter.ExportAsByteArray(exportData);

            _tempFileCacheManager.SetFile(fileDto.FileToken, byteArray);
            return(fileDto);
        }
Пример #2
0
        public async Task <List <FileDto> > GetFiles(UserIdentifier user)
        {
            var tenancyName = ".";

            if (user.TenantId.HasValue)
            {
                using (_unitOfWorkManager.Current.SetTenantId(null))
                {
                    tenancyName = (await _tenantManager.GetByIdAsync(user.TenantId.Value)).TenancyName;
                }
            }

            var profileInfo = await _userManager.GetUserByIdAsync(user.UserId);

            var content = new List <string>
            {
                L("TenancyName") + ": " + tenancyName,
                L("UserName") + ": " + profileInfo.UserName,
                L("Name") + ": " + profileInfo.Name,
                L("Surname") + ": " + profileInfo.Surname,
                L("EmailAddress") + ": " + profileInfo.EmailAddress,
                L("PhoneNumber") + ": " + profileInfo.PhoneNumber
            };

            var profileInfoBytes = Encoding.UTF8.GetBytes(string.Join("\n\r", content));

            var file = new FileDto("ProfileInfo.txt", MimeTypeNames.TextPlain);

            _tempFileCacheManager.SetFile(file.FileToken, profileInfoBytes);

            return(new List <FileDto> {
                file
            });
        }
Пример #3
0
        public FileDto DownloadWebLogs()
        {
            //Create temporary copy of logs
            var logFiles = GetAllLogFiles();

            //Create the zip file
            var zipFileDto = new FileDto("WebSiteLogs.zip", MimeTypeNames.ApplicationZip);

            using (var outputZipFileStream = new MemoryStream())
            {
                using (var zipStream = new ZipArchive(outputZipFileStream, ZipArchiveMode.Create))
                {
                    foreach (var logFile in logFiles)
                    {
                        var entry = zipStream.CreateEntry(logFile.Name);
                        using (var entryStream = entry.Open())
                        {
                            using (var fs = new FileStream(logFile.FullName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite, 0x1000, FileOptions.SequentialScan))
                            {
                                fs.CopyTo(entryStream);
                                entryStream.Flush();
                            }
                        }
                    }
                }

                _tempFileCacheManager.SetFile(zipFileDto.FileToken, outputZipFileStream.ToArray());
            }

            return(zipFileDto);
        }
Пример #4
0
        public UploadServiceImagesOutput UploadServiceImages(FileDto input)
        {
            try
            {
                var profilePictureFile = Request.Form.Files.First();

                byte[] fileBytes;
                using (var stream = profilePictureFile.OpenReadStream())
                {
                    fileBytes = stream.GetAllBytes();
                }

                if (!ImageFormatHelper.GetRawImageFormat(fileBytes).IsIn(ImageFormat.Jpeg, ImageFormat.Png, ImageFormat.Gif))
                {
                    throw new Exception(L("IncorrectImageFormat"));
                }
                _tempFileCacheManager.SetFile(input.FileToken, fileBytes);

                using (var bmpImage = new Bitmap(new MemoryStream(fileBytes)))
                {
                    return(new UploadServiceImagesOutput
                    {
                        FileToken = input.FileToken,
                        FileName = input.FileName,
                        FileType = input.FileType,
                        Width = bmpImage.Width,
                        Height = bmpImage.Height
                    });
                }
            }
            catch (UserFriendlyException ex)
            {
                return(new UploadServiceImagesOutput(new ErrorInfo(ex.Message)));
            }
        }
Пример #5
0
        public UploadDocumentsOutput UploadDocuments(FileDto input)
        {
            try
            {
                var profilePictureFile = Request.Form.Files.First();

                byte[] fileBytes;
                using (var stream = profilePictureFile.OpenReadStream())
                {
                    fileBytes = stream.GetAllBytes();
                }

                _tempFileCacheManager.SetFile(input.FileToken, fileBytes);

                return(new UploadDocumentsOutput
                {
                    FileToken = input.FileToken,
                    Name = input.FileName,
                    FileExt = input.FileType,
                });
            }
            catch (UserFriendlyException ex)
            {
                return(new UploadDocumentsOutput(new ErrorInfo(ex.Message)));
            }
        }
 protected void Save(XSSFWorkbook excelPackage, FileDto file)
 {
     using (var stream = new MemoryStream())
     {
         excelPackage.Write(stream);
         _tempFileCacheManager.SetFile(file.FileToken, stream.ToArray());
     }
 }
        public async Task <FileDto> GetUsersToExcel()
        {
            try
            {
                //Below code is will fetch data for export which will change as per requirement

                var ApplicationList = _applicationRepository.GetAll().AsNoTracking().Include(x => x.project).ToList();
                List <ApplicationDto> ApplicationDtoList = new List <ApplicationDto>();
                if (ApplicationList.Count == 0)
                {
                    ApplicationDto reportDto = new ApplicationDto();
                    ApplicationDtoList.Add(reportDto);
                }

                ApplicationDtoList = ObjectMapper.Map <List <ApplicationDto> >(ApplicationList);

                ApplicationDtoList.ForEach((x) =>
                {
                    x.ApplicationName = (x.Id != 0 && x.ApplicationName != null) ? x.ApplicationName : AppConsts.DashSymbol;
                    x.ProjectName     = (x.Id != 0 && x.project != null) ? x.project.Name : AppConsts.DashSymbol;
                    x.Time            = (x.CreationTime != null) ? x.CreationTime.ToShortDateString() : AppConsts.DashSymbol;
                });


                var applicationSortedList = ApplicationDtoList.OrderBy(x => x.CreationTime).ToList();


                // Below is File Generation code this will remain same for all export you just need to change parameter of createWorksheetForExcel method while calling.

                string fileName       = AppConsts.ExportFilename;
                string path           = Path.GetTempPath();
                string outputFileName = _fileExportService.CreateFilePath(fileName);
                fileName = fileName + AppConsts.ExcelFileExtention;


                var file = new FileDto(fileName, AppConsts.ExcelFormat);

                using (SpreadsheetDocument package = SpreadsheetDocument.Create(outputFileName, SpreadsheetDocumentType.Workbook))
                {
                    _fileExportService.CreateWorksheetForExcel(package, applicationSortedList);
                }

                var memory = await _fileExportService.GenerateMemoryStream(path, fileName);


                _tempFileCacheManager.SetFile(file.FileToken, memory.ToArray());
                //Delete generate file from server
                File.Delete(Path.Combine(path, fileName));

                return(file);
            }
            catch
            {
                throw;
            }
        }
Пример #8
0
        protected FileDto CreateExcelPackage(string templateFile, DataSet dataSet, string reportName)
        {
            //
            var file = new FileDto(reportName, MimeTypeNames.ApplicationVndOpenxmlformatsOfficedocumentSpreadsheetmlSheet);

            var designer = new WorkbookDesigner {
                Workbook = new Workbook(templateFile)
            };

            //Set data row
            designer.SetDataSource(dataSet);
            designer.Process();

            MemoryStream excelStream = new MemoryStream();

            designer.Workbook.Save(excelStream, SaveFormat.Xlsx);

            _tempFileCacheManager.SetFile(file.FileToken, excelStream.ToArray());

            return(file);
        }
Пример #9
0
        public UploadProfilePictureOutput UploadProfilePicture(FileDto input)
        {
            try
            {
                var profilePictureFile = Request.Form.Files.First();

                //Check input
                if (profilePictureFile == null)
                {
                    throw new UserFriendlyException(L("ProfilePicture_Change_Error"));
                }

                if (profilePictureFile.Length > MaxProfilePictureSize)
                {
                    throw new UserFriendlyException(L("ProfilePicture_Warn_SizeLimit", AppConsts.MaxProfilPictureBytesUserFriendlyValue));
                }

                byte[] fileBytes;
                using (var stream = profilePictureFile.OpenReadStream())
                {
                    fileBytes = stream.GetAllBytes();
                }

                if (!ImageFormatHelper.GetRawImageFormat(fileBytes).IsIn(ImageFormat.Jpeg, ImageFormat.Png, ImageFormat.Gif))
                {
                    throw new Exception(L("IncorrectImageFormat"));
                }

                _tempFileCacheManager.SetFile(input.FileToken, fileBytes);

                using (var bmpImage = new Bitmap(new MemoryStream(fileBytes)))
                {
                    return(new UploadProfilePictureOutput
                    {
                        FileToken = input.FileToken,
                        FileName = input.FileName,
                        FileType = input.FileType,
                        Width = bmpImage.Width,
                        Height = bmpImage.Height
                    });
                }
            }
            catch (UserFriendlyException ex)
            {
                return(new UploadProfilePictureOutput(new ErrorInfo(ex.Message)));
            }
        }
        public UploadFilesOutput UploadFiles()
        {
            var Files = Request.Form.Files;

            //Check input
            if (Files == null || Files.Count == 0)
            {
                throw new UserFriendlyException(L("Upload_Files_Error"));
            }

            var file = Files[0];
            UploadFilesOutput result;

            try
            {
                byte[] fileBytes;
                using (var stream = file.OpenReadStream())
                {
                    fileBytes = stream.GetAllBytes();
                }


                var token = Guid.NewGuid().ToString();
                _tempFileCacheManager.SetFile(token, fileBytes);


                result = new UploadFilesOutput
                {
                    FileToken = token,
                    FileName  = file.FileName
                };
            }
            catch (UserFriendlyException ex)
            {
                result = new UploadFilesOutput(new ErrorInfo(ex.Message));
            }

            return(result);
        }
Пример #11
0
        /// <summary>
        /// 导出文章
        /// </summary>
        public async Task <FileDto> GetArticleInfosToExcel(GetArticleInfosInput input)
        {
            async Task <List <ArticleInfoExportDto> > getListFunc(bool isLoadSoftDeleteData)
            {
                var query   = CreateArticleInfosQuery(input);
                var results = await query
                              .OrderBy(input.Sorting)
                              .ToListAsync();

                var exportListDtos = results.MapTo <List <ArticleInfoExportDto> >();

                if (exportListDtos.Count == 0)
                {
                    throw new UserFriendlyException(L("NoDataToExport"));
                }

                return(exportListDtos);
            }

            List <ArticleInfoExportDto> exportData = null;

            //是否仅加载回收站数据
            if (input.IsOnlyGetRecycleData)
            {
                using (UnitOfWorkManager.Current.DisableFilter(AbpDataFilters.SoftDelete))
                {
                    exportData = await getListFunc(true);
                }
            }

            exportData = await getListFunc(false);

            var fileDto   = new FileDto(L("ArticleInfo") + L("ExportData") + ".xlsx", MimeTypeNames.ApplicationVndOpenxmlformatsOfficedocumentSpreadsheetmlSheet);
            var byteArray = await _excelExporter.ExportAsByteArray(exportData);

            _tempFileCacheManager.SetFile(fileDto.FileToken, byteArray);
            return(fileDto);
        }
        public async Task <List <FileDto> > GetFiles(UserIdentifier user)
        {
            var profilePictureId = (await _userManager.GetUserByIdAsync(user.UserId)).ProfilePictureId;

            if (!profilePictureId.HasValue)
            {
                return(new List <FileDto>());
            }

            var profilePicture = await _binaryObjectManager.GetOrNullAsync(profilePictureId.Value);

            if (profilePicture == null)
            {
                return(new List <FileDto>());
            }

            var file = new FileDto("ProfilePicture.png", MimeTypeNames.ImagePng);

            _tempFileCacheManager.SetFile(file.FileToken, profilePicture.Bytes);

            return(new List <FileDto> {
                file
            });
        }
 protected void Save(ExcelPackage excelPackage, FileDto file)
 {
     _tempFileCacheManager.SetFile(file.FileToken, excelPackage.GetAsByteArray());
 }