using ComPDFKitViewer.PdfViewer;
using PDF_Master.CustomControl;
using PDF_Master.Helper;
using PDF_Master.Model;
using PDF_Master.Model.HomePageToolsDialogs;
using Prism.Commands;
using Prism.Mvvm;
using Prism.Services.Dialogs;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace PDF_Master.ViewModels.Dialog.PageEditDialogs
{
public class SplitDialogViewModel : BindableBase, IDialogAware
{
public string Title => "";
private CPDFViewer pdfViewer;
private int listSelectedIndex;
private double pageCount;
private string pageEditSelectedItems;
//页面总数
public double PageCount
{
get { return pageCount; }
set
{
SetProperty(ref pageCount, value);
}
}
private string customPageText;
///
/// 自定义的输入内容
///
public string CustomPageText
{
get { return customPageText; }
set
{
SetProperty(ref customPageText, value);
}
}
private HomePageSplitDialogModel model;
public HomePageSplitDialogModel Model
{
get { return model; }
set
{
SetProperty(ref model, value);
}
}
public event Action RequestClose;
public DelegateCommand CancelCommand { get; set; }
public DelegateCommand SplitCommnad { get; set; }
public SplitDialogViewModel()
{
CancelCommand = new DelegateCommand(cancel);
SplitCommnad = new DelegateCommand(split);
Model = new HomePageSplitDialogModel();
}
private void cancel()
{
RequestClose.Invoke(new DialogResult(ButtonResult.Cancel));
}
private void split()
{
List pages = new List();
Model.PageRange = model.CustomPageText;
DialogParameters valuePairs = new DialogParameters();
valuePairs.Add(ParameterNames.DataModel, Model);
RequestClose.Invoke(new DialogResult(ButtonResult.OK, valuePairs));
}
#region
public bool CanCloseDialog()
{
return true;
}
public void OnDialogClosed()
{
}
public void OnDialogOpened(IDialogParameters parameters)
{
parameters.TryGetValue(ParameterNames.PDFViewer, out pdfViewer);
parameters.TryGetValue(ParameterNames.PageEditSelectedIndex, out listSelectedIndex);
parameters.TryGetValue(ParameterNames.PageEditSelectedItems, out pageEditSelectedItems);
if (pdfViewer != null)
{
PageCount = pdfViewer.Document.PageCount;
Model.SourceFileName = System.IO.Path.GetFileName(pdfViewer.Document.FileName);
//"拆分方式
//若未选择要拆分的页面,则默认选中【平均每X页拆分为一个PDF文件】,默认参数为 1
//若先选择了页面再点击【拆分】,则默认选中【按页面范围拆分】,默认参数为当前所选页面范围"
if (listSelectedIndex == -1)
{
Model.IsAveragePages = true;
}
else
{
Model.IsCustomRange = true;
if (pageEditSelectedItems != null)
{
model.CustomPageText = pageEditSelectedItems;
}
Model.PageSelectedIndex = 3;
}
}
}
#endregion
}
}