using Prism.Mvvm;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace PDF_Office.Model.HomePageToolsDialogs
{
public class HomePageSplitDialogModel:BindableBase
{
///
/// 拆分模式
///
public SplitMode Mode = SplitMode.AveragePages;
///
/// 页面范围形式
///
public PageRangeMode PageMode = PageRangeMode.OddPage;
///
/// 拆分模式份数或者页数
///
public int GetModeCount = 1;
///
/// 页面信息
///
public string PageRange = "1,3-4,10";
private int pageSelectedIndex = 1;
public int PageSelectedIndex
{
get { return pageSelectedIndex; }
set
{
SetProperty(ref pageSelectedIndex, value);
switch (value)
{
case 1:
PageMode = PageRangeMode.OddPage;
break;
case 2:
PageMode = PageRangeMode.EvenPage;
break;
case 3:
PageMode = PageRangeMode.CustomPage;
break;
default:
break;
}
}
}
private double pageNum = 1;
///
/// 平均页数
///
public double PageNum
{
get { return pageNum; }
set
{
SetProperty(ref pageNum, value);
GetModeCount = (int)value;
}
}
private double filesCount = 1;
///
/// 平均文件数
///
public double FilesCount
{
get { return filesCount; }
set
{
SetProperty(ref filesCount, value);
GetModeCount = (int)value;
}
}
private bool isAveragePages = true;
///
/// 平均按页拆分 是否选中
///
public bool IsAveragePages
{
get { return isAveragePages; }
set
{
SetProperty(ref isAveragePages, value);
if(value)
{
Mode = SplitMode.AveragePages;
}
}
}
private bool isAveragePDF = false;
///
/// 平均按PDF拆分 是否选中
///
public bool IsAveragePDF
{
get { return isAveragePDF; }
set
{
SetProperty(ref isAveragePDF, value);
if (value)
{
Mode = SplitMode.AverageFiles;
}
}
}
private bool isCustomRange = false;
///
/// 自定义页面范围,是否选中
///
public bool IsCustomRange
{
get { return isCustomRange; }
set
{
SetProperty(ref isCustomRange, value);
if (value)
{
Mode = SplitMode.CustomPageRange;
}
}
}
///
/// 文件名标签
///
private string fileNameLabel = "part";
public string FileNameLabel
{
get { return fileNameLabel; }
set
{
SetProperty(ref fileNameLabel, value);
RefreshFileName();
}
}
private bool hasLabel = true;
///
/// 是否含有标签
///
public bool HasLabel
{
get { return hasLabel; }
set
{
SetProperty(ref hasLabel, value);
RefreshFileName();
}
}
///
/// 文件名与标签分隔符
///
private string fileNameDeimiter="-";
public string FileNameDeimiter
{
get { return fileNameDeimiter; }
set
{
SetProperty(ref fileNameDeimiter, value);
RefreshFileName();
}
}
private bool hasDeimiter = true;
///
/// 是否含有分隔符
///
public bool HasDeimiter
{
get { return hasDeimiter; }
set
{
SetProperty(ref hasDeimiter, value);
RefreshFileName();
}
}
///
/// 文件名与标签分隔符
///
public bool FrontFileName = true;
///
/// 页码 存入页码范围;
///
public List PageParm = new List { };
///
/// 文件名;
///
private string fileName = "";
public string FileName
{
get { return fileName; }
set
{
SetProperty(ref fileName, value);
}
}
private bool isSourceNameFront = true;
///
/// 原始文档名前置
///
public bool IsSourceNameFront
{
get { return isSourceNameFront; }
set
{
SetProperty(ref isSourceNameFront, value);
RefreshFileName();
}
}
private string sourceName;
///
/// 原始文件名
///
public string SourceFileName
{
get { return sourceName; }
set
{
SetProperty(ref sourceName, value);
RefreshFileName();
}
}
///
/// 刷新文件名
///
public void RefreshFileName()
{
string label = HasLabel ? FileNameLabel : "";
string deimiter = hasDeimiter ? FileNameDeimiter : "";
if(isSourceNameFront)
{
FileName = SourceFileName + deimiter + label + ".pdf";
}
else
{
FileName = label + deimiter + SourceFileName + ".pdf";
}
}
public enum SplitMode
{
///
/// 按页平均拆分
///
AveragePages,
///
/// 按文件平均拆分
///
AverageFiles,
///
/// 自定义页码范围拆分
///
CustomPageRange
}
public enum PageRangeMode
{
///
/// 奇数页
///
OddPage,
///
/// 偶数页
///
EvenPage,
///
/// 自定义页面范围
///
CustomPage
}
}
}