ConverterProgressBarDialogViewModel.cs 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  1. using ComPDFKit.PDFDocument;
  2. using ComPDFKit_Conversion.Converter;
  3. using ComPDFKit_Conversion.Options;
  4. using PDF_Office.Helper;
  5. using PDF_Office.Model;
  6. using PDF_Office.Model.Dialog.ConverterDialogs;
  7. using Prism.Commands;
  8. using Prism.Mvvm;
  9. using Prism.Services.Dialogs;
  10. using System;
  11. using System.Collections.Generic;
  12. using System.Linq;
  13. using System.Net.Mime;
  14. using static Dropbox.Api.Sharing.ListFileMembersIndividualResult;
  15. namespace PDF_Office.ViewModels.Dialog.ConverterDialogs
  16. {
  17. public class ConverterProgressBarDialogViewModel : BindableBase,IDialogAware
  18. {
  19. private string _pageIndex = "0";
  20. /// <value>
  21. /// 当前页
  22. /// </value>
  23. public string PageIndex
  24. {
  25. get { return _pageIndex; }
  26. set
  27. {
  28. SetProperty(ref _pageIndex, value);
  29. }
  30. }
  31. private string _pageNumber = "";
  32. /// <value>
  33. /// 总页数
  34. /// </value>
  35. public string PageNumber
  36. {
  37. get { return _pageNumber; }
  38. set
  39. {
  40. SetProperty(ref _pageNumber, value);
  41. }
  42. }
  43. public ConverterProgressBarDialogViewModel()
  44. {
  45. }
  46. private void SetProgress(int pageIndex)
  47. {
  48. PageIndex=pageIndex.ToString();
  49. }
  50. public string Title =>"";
  51. public event Action<IDialogResult> RequestClose;
  52. public bool CanCloseDialog()
  53. {
  54. return true;
  55. }
  56. public void OnDialogClosed()
  57. {
  58. }
  59. public async void OnDialogOpened(IDialogParameters parameters)
  60. {
  61. bool result=false;
  62. string convertType="";
  63. OnProgress GetProgress = null;
  64. GetProgress += SetProgress;
  65. parameters.TryGetValue<string>(ParameterNames.ConverterType, out convertType);
  66. switch (convertType)
  67. {
  68. case "CSV":
  69. ConverterCSVDialogModel ConverterCSVModel;
  70. parameters.TryGetValue<ConverterCSVDialogModel>(ParameterNames.ConverterTypeModel, out ConverterCSVModel);
  71. if (ConverterCSVModel != null)
  72. {
  73. PageNumber = ConverterCSVModel.PageIndexLists.Count().ToString();
  74. result = await ConverterHelper.CSVConvert(ConverterCSVModel.InputPath, ConverterCSVModel.OutputPath, GetProgress, ConverterCSVModel.PageIndexLists, ConverterCSVModel.Pawssword);
  75. RequestClose.Invoke(new DialogResult(ButtonResult.Cancel));
  76. }
  77. break;
  78. case "Excel":
  79. ConverterExcelDialogModel ConverterExcelModel;
  80. parameters.TryGetValue<ConverterExcelDialogModel>(ParameterNames.ConverterTypeModel, out ConverterExcelModel);
  81. if (ConverterExcelModel != null)
  82. {
  83. PageNumber = ConverterExcelModel.PageIndexLists.Count().ToString();
  84. result = await ConverterHelper.ExcelConvert(ConverterExcelModel.InputPath, ConverterExcelModel.OutputPath, GetProgress, ConverterExcelModel.PageIndexLists, ConverterExcelModel.Pawssword, ConverterExcelModel.excelOption);
  85. }
  86. break;
  87. case "HTML":
  88. ConverterHTMLDialogModel ConverterHTMLModel;
  89. parameters.TryGetValue<ConverterHTMLDialogModel>(ParameterNames.ConverterTypeModel, out ConverterHTMLModel);
  90. if (ConverterHTMLModel != null)
  91. {
  92. PageNumber = ConverterHTMLModel.PageIndexLists.Count().ToString();
  93. }
  94. break;
  95. case "Img":
  96. ConverterImgDialogModel ConverterImgModel;
  97. parameters.TryGetValue<ConverterImgDialogModel>(ParameterNames.ConverterTypeModel, out ConverterImgModel);
  98. if (ConverterImgModel != null)
  99. {
  100. PageNumber = ConverterImgModel.PageIndexLists.Count().ToString();
  101. result = await ConverterHelper.ImgConvert(ConverterImgModel.InputPath, ConverterImgModel.OutputPath, GetProgress, ConverterImgModel.PageIndexLists, ConverterImgModel.Pawssword, ConverterImgModel.Type);
  102. }
  103. break;
  104. case "PPT":
  105. ConverterPPTDialogModel ConverterPPTModel;
  106. parameters.TryGetValue<ConverterPPTDialogModel>(ParameterNames.ConverterTypeModel, out ConverterPPTModel);
  107. if (ConverterPPTModel != null)
  108. {
  109. PageNumber = ConverterPPTModel.PageIndexLists.Count().ToString();
  110. result = await ConverterHelper.PPTConvert(ConverterPPTModel.InputPath, ConverterPPTModel.OutputPath, GetProgress, ConverterPPTModel.PageIndexLists, ConverterPPTModel.Pawssword);
  111. }
  112. break;
  113. case "RTF":
  114. ConverterRTFDialogModel ConverterRTFModel;
  115. parameters.TryGetValue<ConverterRTFDialogModel>(ParameterNames.ConverterTypeModel, out ConverterRTFModel);
  116. if (ConverterRTFModel != null)
  117. {
  118. PageNumber = ConverterRTFModel.PageIndexLists.Count().ToString();
  119. }
  120. break;
  121. case "Text":
  122. ConverterTextDialogModel ConverterTextModel;
  123. parameters.TryGetValue<ConverterTextDialogModel>(ParameterNames.ConverterTypeModel, out ConverterTextModel);
  124. if (ConverterTextModel != null)
  125. {
  126. PageNumber = ConverterTextModel.PageIndexLists.Count().ToString();
  127. result = await ConverterHelper.TxtConvert(ConverterTextModel.InputPath, ConverterTextModel.OutputPath, GetProgress, ConverterTextModel.PageIndexLists, ConverterTextModel.Pawssword);
  128. }
  129. break;
  130. case "Word":
  131. ConverterWordDialogModel ConverterWordModel;
  132. parameters.TryGetValue<ConverterWordDialogModel>(ParameterNames.ConverterTypeModel, out ConverterWordModel);
  133. if (ConverterWordModel != null) {
  134. PageNumber = ConverterWordModel.PageIndexLists.Count().ToString();
  135. result = await ConverterHelper.WordConvert(ConverterWordModel.InputPath, ConverterWordModel.OutputPath, GetProgress, ConverterWordModel.PageIndexLists, ConverterWordModel.Pawssword);
  136. }
  137. break;
  138. default:
  139. break;
  140. }
  141. RequestClose?.Invoke(new DialogResult(ButtonResult.OK));
  142. }
  143. }
  144. }