using Common.system;
using System;
using System.Threading;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Forms;
using System.Windows.Input;
using XHWK.Model;
namespace XHWK.WKTool
{
///
/// 创建微课
///
public partial class CreateAMicroLessonWindow : Window
{
#region 字段
private FolderBrowserDialog ofd;
private DialogResult result;
#endregion 字段
///
/// 创建微课
///
public CreateAMicroLessonWindow()
{
InitializeComponent();
ResizeMode = ResizeMode.NoResize;
txbStoragePath.Text = FileToolsCommon.GetConfigValue("VideoSavePath");
var versionCode = FileToolsCommon.GetConfigValue("VersionCode");
var versionName = FileToolsCommon.GetConfigValue("VersionName");
var isDebug = FileToolsCommon.GetConfigValue("IsDebug");
var debugStr = "测试版";
if (isDebug == "1")
{
debugStr = "测试版";
}
else if (isDebug == "0")
{
debugStr = "正式版";
}
versionLabel.Content = debugStr + " v" + versionName + "(" + versionCode + ")";
LoadingCarouseImg();
}
#region 轮播图
///
/// 图片宽度,每次切换的宽度
///
private double ImgWidth = 502.00;
///
/// 轮播时移动增加的宽度
///
private double ImgMove = 1;
///
/// 当前展示的图片序号Index从0开始
///
private int ImgNumIndex = 0;
///
/// 加载录播图
///
private void LoadingCarouseImg()
{
new Thread(new ThreadStart(new Action(() =>
{
Thread.Sleep(3000);
Dispatcher.Invoke(() =>
{
ImgWidth = ImgCarouse1.ActualWidth;
ImgMove = ImgWidth / 250.00;
CarouseImg();
//timesCarouse = new System.Timers.Timer(2000);
//timesCarouse.Elapsed += TimesCarouse_Elapsed; ;
//timesCarouse.Start();
});
}))).Start();
}
///
/// 轮播图
///
private void CarouseImg()
{
new Thread(new ThreadStart(new Action(() =>
{
while (true)
{
for (double i = ImgMove; i < ImgWidth; i += ImgMove)
{
Dispatcher.Invoke(() =>
{
if (Math.Abs(i + ImgMove) < ImgWidth)
{
//图片移动轮播
SplCarouse.Margin = new Thickness(SplCarouse.Margin.Left - ImgMove, 0, 0, 0);
}
else
{
if (ImgNumIndex >= 2)
{
ImgNumIndex = 0;
SplCarouse.Margin = new Thickness(0, 0, 0, 0);
}
else
{
ImgNumIndex++;
SplCarouse.Margin = new Thickness(-(ImgNumIndex * ImgWidth), 0, 0, 0);
}
}
});
Thread.Sleep(3);
}
bool IsBreak = false;
Dispatcher.Invoke(() =>
{
if (this.Visibility != Visibility.Visible)
{
SplCarouse.Margin = new Thickness(0);
IsBreak = true;
}
});
Thread.Sleep(5000);
if (IsBreak)
{
break;
}
}
}))).Start();
}
///
/// 轮播图切换
///
///
///
///
///
private void TimesCarouse_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
//SplCarouse
//ImgCarouse1
}
#endregion 轮播图
#region 事件
///
/// 关闭
///
///
///
///
///
private void BtnDown_Click(object sender, RoutedEventArgs e)
{
MessageBoxResult dr = MessageWindow.Show("确定退出系统?", "提示", MessageBoxButton.OKCancel);
if (dr == MessageBoxResult.OK)
{
System.Environment.Exit(0);
}
else
{
return;
}
}
///
/// 浏览
///
///
///
///
///
private void BtnBrowse_Click(object sender, RoutedEventArgs e)
{
//string desktopPath = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory);
ofd = new FolderBrowserDialog();
result = ofd.ShowDialog();
if (result == System.Windows.Forms.DialogResult.OK)
{
if (ofd.SelectedPath != "")
{
txbStoragePath.Text = ofd.SelectedPath;
}
}
}
private bool IsPressButton = false;
///
/// 开始
///
///
///
///
///
private async void BtnStart_Click(object sender, RoutedEventArgs e)
{
#region 防止连击
if (IsPressButton)
{
return;
}
else
{
IsPressButton = true;
new Thread(new ThreadStart(new Action(() =>
{
Thread.Sleep(500);
IsPressButton = false;
}))).Start();
}
#endregion 防止连击
#region 合法性判断
if (string.IsNullOrWhiteSpace(txbExplainName.Text.Trim()))
{
MessageWindow.Show("讲解名称不可为空!");
return;
}
if (string.IsNullOrWhiteSpace(txbStoragePath.Text.Trim()))
{
MessageWindow.Show("路径不可为空!");
return;
}
try
{
FileToolsCommon.CreateDirectory(txbStoragePath.Text.Trim());
}
catch (Exception ex)
{
MessageWindow.Show("路径无法访问,解决方案:\r\n1,检查路径是否可访问。\r\n2,关闭杀毒软件或信任软件。");
return;
}
#endregion 合法性判断
LblCreate.Visibility = Visibility.Visible;
string wkpath = FileToolsCommon.GetLegalPath(txbStoragePath.Text) + txbExplainName.Text.Trim() + "/";
string StoragePath = txbStoragePath.Text;
string WkName = txbExplainName.Text;
await Task.Run(() =>
{
try
{
//读取微课数据
APP.ReadWkData(wkpath);
if (APP.WKData == null)
{
APP.WKData = new Model_WKData
{
WkPath = wkpath,
WkName = WkName,
WkCreateDateTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")
};
}
try
{
//创建文件夹
FileToolsCommon.CreateDirectory(APP.WKData.WkPath);
FileToolsCommon.DeleteDirectory(wkpath + "temp");
FileToolsCommon.DeleteDirectory(wkpath + "temprs");
}
catch (Exception ex)
{
LogHelper.WriteErrLog("【微课创建课程】文件夹创建删除失败:" + ex.Message, ex);
}
//存储文件
FileToolsCommon.SetConfigValue("VideoSavePath", StoragePath);
APP.ReadDrawData();
}
catch (Exception ex)
{
LogHelper.WriteErrLog("【微课创建课程】读取课堂数据失败:" + ex.Message, ex);
}
});
if (APP.W_XHMicroLessonSystemWindow == null)
{
APP.W_XHMicroLessonSystemWindow = new MainWindow();
}
APP.W_XHMicroLessonSystemWindow.Show();
LblCreate.Visibility = Visibility.Hidden;
Hide();
}
///
/// 窗体移动
///
///
///
///
///
private void Window_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
DragMove();
}
#endregion 事件
///
/// 检测APP更新
///
private void getNewApp()
{
new Thread(o =>
{
//读取本地
APP.ReadServiceAddressData();
int versionThis = int.Parse(FileToolsCommon.GetConfigValue("VersionCode"));
if (versionThis < 0)
{
//软件是否更新,版本号小于0不更新
return;
}
string url = APP.apiUrl + "/sapi/apprecord/get_new";
string result = HttpHelper.PostAndRespStr(url, "{}");
Model.ResultVo resultObj = JsonHelper.JsonToObj>(result);
if (result != null && resultObj.code == 0)
{
if (resultObj.obj != null)
{
try
{
int versionCode = resultObj.obj.versioncode;
if (versionThis < versionCode)
{
Dispatcher.Invoke(new Action(() =>
{
string pathTemp = AppDomain.CurrentDomain.BaseDirectory + "Temp\\";
FileToolsCommon.CreateDirectory(pathTemp);
appUpdateShow(resultObj.obj);
}));
}
}
catch (Exception ex)
{
LogHelper.WriteErrLog("【检查更新】(getNewApp)版本号错误:" + ex.Message, ex);
}
}
}
}).Start();
}
///
/// 应用更新
///
///
///
private void appUpdateShow(Model_App app)
{
AppUpdateWin win = new AppUpdateWin(app)
{
Topmost = true,
Owner = this
};
win.Show();
}
private void Window_Loaded(object sender, RoutedEventArgs e)
{
getNewApp();
}
}
}