ConverterProgressBarDialogViewModel.cs 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206
  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.Diagnostics;
  13. using System.Linq;
  14. using System.Net.Mime;
  15. using System.Windows.Media;
  16. using static Dropbox.Api.Sharing.ListFileMembersIndividualResult;
  17. using static System.Windows.Forms.VisualStyles.VisualStyleElement.ToolTip;
  18. namespace PDF_Office.ViewModels.Dialog.ConverterDialogs
  19. {
  20. public class ConverterProgressBarDialogViewModel : BindableBase,IDialogAware
  21. {
  22. public string Title => "";
  23. public event Action<IDialogResult> RequestClose;
  24. #region 参数和属性
  25. private string _pageIndex = "0";
  26. /// <value>
  27. /// 当前页
  28. /// </value>
  29. public string PageIndex
  30. {
  31. get { return _pageIndex; }
  32. set
  33. {
  34. SetProperty(ref _pageIndex, value);
  35. }
  36. }
  37. private string _pageNumber = "0";
  38. /// <value>
  39. /// 总页数
  40. /// </value>
  41. public string PageNumber
  42. {
  43. get { return _pageNumber; }
  44. set
  45. {
  46. SetProperty(ref _pageNumber, value);
  47. }
  48. }
  49. #endregion
  50. public DelegateCommand CloseCompressCommand { get; set; }
  51. public ConverterProgressBarDialogViewModel()
  52. {
  53. CloseCompressCommand = new DelegateCommand(Close);
  54. }
  55. #region 逻辑函数
  56. private void SetProgress(int pageIndex)
  57. {
  58. PageIndex=pageIndex.ToString();
  59. }
  60. public void Close()
  61. {
  62. RequestClose?.Invoke(new DialogResult(ButtonResult.OK));
  63. }
  64. #endregion
  65. #region 构架行为
  66. public bool CanCloseDialog()
  67. {
  68. return true;
  69. }
  70. public void OnDialogClosed()
  71. {
  72. ConverterHelper.Clear();
  73. }
  74. public async void OnDialogOpened(IDialogParameters parameters)
  75. {
  76. bool result=false;
  77. string convertType="";
  78. OnProgress GetProgress = null;
  79. GetProgress += SetProgress;
  80. parameters.TryGetValue<string>(ParameterNames.ConverterType, out convertType);
  81. switch (convertType)
  82. {
  83. case "CSV":
  84. ConverterCSVDialogModel ConverterCSVModel;
  85. parameters.TryGetValue<ConverterCSVDialogModel>(ParameterNames.ConverterTypeModel, out ConverterCSVModel);
  86. if (ConverterCSVModel != null)
  87. {
  88. PageNumber = ConverterCSVModel.PageIndexLists.Count().ToString();
  89. for (int i = 0; ConverterCSVModel.PageIndexLists.Count > i; i++)
  90. {
  91. ConverterCSVModel.PageIndexLists[i] = ConverterCSVModel.PageIndexLists[i] + 1;
  92. }
  93. result = await ConverterHelper.CSVConvert(ConverterCSVModel.InputPath, ConverterCSVModel.OutputPath, GetProgress, ConverterCSVModel.PageIndexLists, ConverterCSVModel.Pawssword, ConverterCSVModel.csvOptions);
  94. }
  95. break;
  96. case "Excel":
  97. ConverterExcelDialogModel ConverterExcelModel;
  98. parameters.TryGetValue<ConverterExcelDialogModel>(ParameterNames.ConverterTypeModel, out ConverterExcelModel);
  99. if (ConverterExcelModel != null)
  100. {
  101. PageNumber = ConverterExcelModel.PageIndexLists.Count().ToString();
  102. for (int i = 0; ConverterExcelModel.PageIndexLists.Count > i; i++)
  103. {
  104. ConverterExcelModel.PageIndexLists[i] = ConverterExcelModel.PageIndexLists[i] + 1;
  105. }
  106. result = await ConverterHelper.ExcelConvert(ConverterExcelModel.InputPath, ConverterExcelModel.OutputPath, GetProgress, ConverterExcelModel.PageIndexLists, ConverterExcelModel.Pawssword, ConverterExcelModel.excelOptions);
  107. }
  108. break;
  109. case "HTML":
  110. ConverterHTMLDialogModel ConverterHTMLModel;
  111. parameters.TryGetValue<ConverterHTMLDialogModel>(ParameterNames.ConverterTypeModel, out ConverterHTMLModel);
  112. if (ConverterHTMLModel != null)
  113. {
  114. PageNumber = ConverterHTMLModel.PageIndexLists.Count().ToString();
  115. for (int i = 0; ConverterHTMLModel.PageIndexLists.Count > i; i++)
  116. {
  117. ConverterHTMLModel.PageIndexLists[i] = ConverterHTMLModel.PageIndexLists[i] + 1;
  118. }
  119. result = await ConverterHelper.HTMLConvert(ConverterHTMLModel.InputPath, ConverterHTMLModel.OutputPath, GetProgress, ConverterHTMLModel.PageIndexLists, ConverterHTMLModel.Pawssword, ConverterHTMLModel.htmlOptions);
  120. }
  121. break;
  122. case "Img":
  123. ConverterImgDialogModel ConverterImgModel;
  124. parameters.TryGetValue<ConverterImgDialogModel>(ParameterNames.ConverterTypeModel, out ConverterImgModel);
  125. if (ConverterImgModel != null)
  126. {
  127. PageNumber = ConverterImgModel.PageIndexLists.Count().ToString();
  128. for (int i=0; ConverterImgModel.PageIndexLists.Count>i;i++) {
  129. ConverterImgModel.PageIndexLists[i] = ConverterImgModel.PageIndexLists[i] + 1;
  130. }
  131. result = await ConverterHelper.ImgConvert(ConverterImgModel.InputPath, ConverterImgModel.OutputPath, GetProgress, ConverterImgModel.PageIndexLists, ConverterImgModel.Pawssword, ConverterImgModel.imageType, ConverterImgModel.imgOptions);
  132. }
  133. break;
  134. case "PPT":
  135. ConverterPPTDialogModel ConverterPPTModel;
  136. parameters.TryGetValue<ConverterPPTDialogModel>(ParameterNames.ConverterTypeModel, out ConverterPPTModel);
  137. if (ConverterPPTModel != null)
  138. {
  139. PageNumber = ConverterPPTModel.PageIndexLists.Count().ToString();
  140. for (int i = 0; ConverterPPTModel.PageIndexLists.Count > i; i++)
  141. {
  142. ConverterPPTModel.PageIndexLists[i] = ConverterPPTModel.PageIndexLists[i] + 1;
  143. }
  144. result = await ConverterHelper.PPTConvert(ConverterPPTModel.InputPath, ConverterPPTModel.OutputPath, GetProgress, ConverterPPTModel.PageIndexLists, ConverterPPTModel.Pawssword, ConverterPPTModel.pPTOptions);
  145. }
  146. break;
  147. case "RTF":
  148. ConverterRTFDialogModel ConverterRTFModel;
  149. parameters.TryGetValue<ConverterRTFDialogModel>(ParameterNames.ConverterTypeModel, out ConverterRTFModel);
  150. if (ConverterRTFModel != null)
  151. {
  152. PageNumber = ConverterRTFModel.PageIndexLists.Count().ToString();
  153. for (int i = 0; ConverterRTFModel.PageIndexLists.Count > i; i++)
  154. {
  155. ConverterRTFModel.PageIndexLists[i] = ConverterRTFModel.PageIndexLists[i] + 1;
  156. }
  157. result = await ConverterHelper.RTFConvert(ConverterRTFModel.InputPath, ConverterRTFModel.OutputPath, GetProgress, ConverterRTFModel.PageIndexLists, ConverterRTFModel.Pawssword, ConverterRTFModel.rTFOptions);
  158. }
  159. break;
  160. case "Text":
  161. ConverterTextDialogModel ConverterTextModel;
  162. parameters.TryGetValue<ConverterTextDialogModel>(ParameterNames.ConverterTypeModel, out ConverterTextModel);
  163. if (ConverterTextModel != null)
  164. {
  165. PageNumber = ConverterTextModel.PageIndexLists.Count().ToString();
  166. for (int i = 0; ConverterTextModel.PageIndexLists.Count > i; i++)
  167. {
  168. ConverterTextModel.PageIndexLists[i] = ConverterTextModel.PageIndexLists[i] + 1;
  169. }
  170. result = await ConverterHelper.TxtConvert(ConverterTextModel.InputPath, ConverterTextModel.OutputPath, GetProgress, ConverterTextModel.PageIndexLists, ConverterTextModel.Pawssword, ConverterTextModel.txtOptions);
  171. }
  172. break;
  173. case "Word":
  174. ConverterWordDialogModel ConverterWordModel;
  175. parameters.TryGetValue<ConverterWordDialogModel>(ParameterNames.ConverterTypeModel, out ConverterWordModel);
  176. if (ConverterWordModel != null) {
  177. PageNumber = ConverterWordModel.PageIndexLists.Count().ToString();
  178. for (int i = 0; ConverterWordModel.PageIndexLists.Count > i; i++)
  179. {
  180. ConverterWordModel.PageIndexLists[i] = ConverterWordModel.PageIndexLists[i] + 1;
  181. }
  182. result = await ConverterHelper.WordConvert(ConverterWordModel.InputPath, ConverterWordModel.OutputPath, GetProgress, ConverterWordModel.PageIndexLists, ConverterWordModel.Pawssword, ConverterWordModel.wordOptions);
  183. }
  184. break;
  185. default:
  186. break;
  187. }
  188. RequestClose?.Invoke(new DialogResult(ButtonResult.OK));
  189. }
  190. #endregion
  191. }
  192. }