private async Task ExportCategories(IList <ExchangeDataRow> models, ExportOptionsViewModel options, ExportResultViewModel exportResult)
        {
            List <AdsCategoryViewModel> categories = new List <AdsCategoryViewModel>();

            if (!string.IsNullOrEmpty(options.Category))
            {
                categories.AddRange(await _adsUnitOfWork.CategoriesRepository.FilterByIds(options.Category.Split(';').Select(i => Guid.Parse(i)).ToList()));
            }
            else
            {
                if (!string.IsNullOrEmpty(options.Family))
                {
                    categories.AddRange(await _adsUnitOfWork.CategoriesRepository.GetByFamily(Guid.Parse(options.Family)));
                }
                else
                {
                    categories.AddRange(await _adsUnitOfWork.CategoriesRepository.GetAll());
                }
            }

            exportResult.CategoriesExported = categories.Count;

            foreach (var category in categories)
            {
                ParseCategory(category, models);
            }
        }
        public XmlWriter(ExportOptionsViewModel options, IList <TITem> items, StreamWriter stream)
        {
            Items = items;

            _stream        = stream;
            _xmlSerializer = new System.Xml.Serialization.XmlSerializer(typeof(TITem));
        }
 public void SetDataContext()
 {
     if (elementHost1.Child is ExportOptionsView view && view.DataContext == null)
     {
         ExportOptionsViewModel = new ExportOptionsViewModel(Settings, new DialogService());
         view.DataContext       = ExportOptionsViewModel;
     }
 }
 public XlsWriter(ExportOptionsViewModel options, IList <TITem> items, Stream stream)
 {
     Items        = items;
     _stream      = stream;
     _workbook    = new XLWorkbook();
     _worksheet   = _workbook.Worksheets.Add(typeof(TITem).Name);
     _tableWriter = new TableFactory().CreateXlsxWriter <TITem>(_worksheet, 1, 1);
 }
示例#5
0
 protected override void Export(ExportOptionsViewModel exportOptionsModel)
 {
     if (string.IsNullOrEmpty(Path.GetExtension(exportOptionsModel.FileName)))
     {
         var extension = ExportOptionsControllerBase
                         .GetControllerByOptions(exportOptionsModel.ExportOptions)
                         .GetFileExtension(exportOptionsModel.ExportOptions);
         exportOptionsModel.FileName += extension;
     }
     base.Export(exportOptionsModel);
 }
        public async Task <ActionResult <ExportResultViewModel> > ExportReferential(ExportOptionsViewModel options)
        {
            IList <ExchangeDataRow> models = new List <ExchangeDataRow>();
            var exportResult = new ExportResultViewModel();

            if (options.IncludeFamily)
            {
                await ExportFamilies(models, options, exportResult);
            }

            if (options.IncludeCategory)
            {
                await ExportCategories(models, options, exportResult);
            }

            using var memo = new MemoryStream();

            switch (options.FileType)
            {
            case ".xlsx":
            {
                using var xlsxWriter = new XlsWriter <ExchangeDataRow>(options, models, memo);
                xlsxWriter.Write();
                exportResult.FileMimeType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
                break;
            }

            case ".csv":
            {
                using var stmWriter       = new StreamWriter(memo);
                using var csvWriter       = new CsvWriter <ExchangeDataRow>(options, models, stmWriter);
                exportResult.FileMimeType = "text/csv";
                csvWriter.Write();
                stmWriter.Close();
                break;
            }

            case ".xml":
            {
                using var stmWriter       = new StreamWriter(memo);
                using var xmlWriter       = new XmlWriter <ExchangeDataRow>(options, models, stmWriter);
                exportResult.FileMimeType = "application/xml";
                xmlWriter.Write();
                stmWriter.Close();
                break;
            }
            }

            exportResult.FileContent = memo.ToArray();
            return(Ok(exportResult));
        }
示例#7
0
        public override void Export(ExportFormat?format)
        {
            if (format.HasValue && format.Value == ExportFormat.Xls)
            {
                var optionsModel = ExportOptionsViewModel.Create(Document.PrintingSystem, format.Value);

                optionsModel.OpenFileAfterExport = false;
                optionsModel.FileName            = "test.xls";

                new DocumentPublishEngine(Document.PrintingSystem).Export(optionsModel);
                System.Windows.MessageBox.Show("!");
                System.Diagnostics.Process.Start("test.xls");
            }
            else
            {
                base.Export(format);
            }
        }
        private async Task ExportFamilies(IList <ExchangeDataRow> models, ExportOptionsViewModel options, ExportResultViewModel exportResult)
        {
            List <AdsFamilyViewModel> families = new List <AdsFamilyViewModel>();

            if (!string.IsNullOrEmpty(options.Family))
            {
                var family = await _adsUnitOfWork.FamiliesRepository.Get(Guid.Parse(options.Family));

                families.Add(family);
            }
            else
            {
                families.AddRange(await _adsUnitOfWork.FamiliesRepository.GetAll());
            }

            exportResult.FamiliesExported = families.Count;

            foreach (var family in families)
            {
                await ParseFamily(family, models);
            }
        }
 public CsvWriter(ExportOptionsViewModel options, IList <TITem> items, StreamWriter stream)
 {
     Items        = items;
     _tableWriter = new TableFactory().CreateCsvWriter <TITem>(stream);
 }