using Common.system;
using System;
using System.Threading;
using System.Collections.ObjectModel;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;
using XHWK.Model;
using XHWK.WKTool.DAL;
using static XHWK.WKTool.XHMicroLessonSystemWindow;
namespace XHWK.WKTool
{
///
/// UploadWindow.xaml 的交互逻辑
///
public partial class UploadWindow : Window
{
///
/// 调用接口
///
private readonly XHApi xhapi = new XHApi();
///
/// 前台数据
///
internal LoginPageData pageData = new LoginPageData();
///
/// 文件名
///
private string Resourcename = string.Empty;
///
/// 文件大小
///
private long Resourcesize = 0;
///
/// 文件类型
///
private string Suffix = string.Empty;
///
/// 唯一编号
///
private string Guid = string.Empty;
//定义事件
public event ChangeTextHandlers ChangeTextEvents;
///
/// 当前视频的下标
///
private int i = 0;
private System.Timers.Timer times;
public UploadWindow()
{
InitializeComponent();
}
///
/// 初始化
///
public void Initialize(string _resourcename, long _resourcesize, string _suffix, string _guid, int _i)
{
i = _i;
Resourcename = _resourcename;
Resourcesize = _resourcesize;
Suffix = _suffix;
Guid = _guid;
tip_outer.Visibility = Visibility.Collapsed;
Tsubjectbook();
}
///
/// 教材接口调用
///
///
///
private void Tsubjectbook()
{
int code = xhapi.TsubjectbookList();
if (code == 0)
{
for (int i = 0; i < APP.TsubjectbookList.Count; i++)
{
pageData.bookList.Add(new ComboBoxBean()
{
Key = APP.TsubjectbookList[i].Lsbid,
//Value = $"{APP.TsubjectbookList[i].Subjectname} {APP.TsubjectbookList[i].Bookname}"
Value = $"{APP.TsubjectbookList[i].Subjectname} {APP.TsubjectbookList[i].Versionname} {APP.TsubjectbookList[i].Lsbname}"
});
}
book_list.SelectedIndex = 0;
DataContext = pageData;
Director();
}
else
{
MessageWindow.Show(APP.ServerMsg);
}
}
///
/// 章节接口调用
///
private void Director()
{
int selectIndex = book_list.SelectedIndex;
if (selectIndex < 0)
{
selectIndex = 0;
}
int code = xhapi.DirectorList(APP.TsubjectbookList[selectIndex].Lsbid, 4, APP.UserInfo.Userid);
if (code == 0)
{
pageData.zhangjieList.Clear();
pageData.zhangjieList.Add(new ComboBoxBean()
{
Key = "0",
Value = "全部",
leaf = 1
});
for (int i = 0; i < APP.DirectorList.Count; i++)
{
Model_DirectorList item = APP.DirectorList[i];
pageData.zhangjieList.Add(new ComboBoxBean()
{
Key = item.directorid,
Value = item.directorname,
leaf = item.leaf
});
addChild(item);
}
cmbTeachingMaterial.SelectedIndex = 0;
}
else
{
MessageWindow.Show(APP.ServerMsg);
}
}
///
/// 子章节递归
///
///
///
private void addChild(Model_DirectorList directorList)
{
if (directorList.children != null && directorList.children.Count > 0)
{
foreach (Model_DirectorList child in directorList.children)
{
pageData.zhangjieList.Add(new ComboBoxBean()
{
Key = child.directorid,
Value = getSpace(child.directorlevel) + child.directorname,
leaf = child.leaf
});
if (child.children != null && child.children.Count > 0)
{
addChild(child);
}
}
}
}
///
/// 章节是否加空格符
///
///
///
///
///
private string getSpace(int num)
{
string str = "";
for (int i = 0; i < num; i++)
{
str += " ";
}
return str;
}
private void Window_Loaded(object sender, RoutedEventArgs e)
{
}
private void Window_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
}
///
/// 教材下拉框改变事件
///
///
///
///
///
private void toolbar_list_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
Director();
}
private void BtnDown_Click(object sender, RoutedEventArgs e)
{
APP.IsUpLoad = false;
Hide();
}
///
/// 上传到个人空间
///
///
///
///
///
private void BtnStart_Click(object sender, RoutedEventArgs e)
{
if (string.IsNullOrWhiteSpace(book_list.Text))
{
MessageWindow.Show("请选择教材!");
return;
}
if (cmbTeachingMaterial.SelectedIndex < pageData.zhangjieList.Count)
{
int leaf = pageData.zhangjieList[cmbTeachingMaterial.SelectedIndex].leaf;
if (leaf != 1)
{
MessageWindow.Show("只能选择小节或全部进行上传!");
return;
}
}
btnStart.IsEnabled = false;
book_list.IsEnabled = false;
cmbTeachingMaterial.IsEnabled = false;
Thread myThread = new Thread(StartUpload);
num = 0;
tip_outer.Visibility = Visibility.Visible;
myThread.Start();
times = new System.Timers.Timer(100);
times.Elapsed += Times_ElapsedClick;
times.Start();
}
private void StartUpload()
{
try
{
DAL_Upload dAL_Upload = new DAL_Upload();
if (dAL_Upload.UploadVideoTwo(Guid, out string ErrMessage))
{
// converted: 0
//createid: 80
//directorid: 1009
//duration: 39
//imgUrl: ""
//level: 2
//lsbid: 40
//mp4code: "h264"
//resourcebelong: 3
//resourceclass: 2
//resourcecover: "12/resource/20200917/4f297df0-f8c0-11ea-adf5-81f24b97d4ff/weather_pic.jpg"
//resourcename: "weather_pic"
//resourcesize: 6105268
//resourcetype: 0
//resourceurl: "12/resource/20200917/4f297df0-f8c0-11ea-adf5-81f24b97d4ff/weather_pic.mp4"
//schoolid: 12
//suffix: "mp4"
//uid: 80
Model_ResourceAdd model_ResourceAdd = new Model_ResourceAdd();
Dispatcher.Invoke(() =>
{
model_ResourceAdd = new Model_ResourceAdd
{
converted = 0,
createid = APP.UserInfo.Userid,
directorid = cmbTeachingMaterial.SelectedValue.ToString(),
duration = APP.ResourceAddTwo.duration,
subjectid = APP.TsubjectbookList[book_list.SelectedIndex].Subjectid,
imgUrl = "",
level = 2,
lsbid = book_list.SelectedValue.ToString(),
mp4code = APP.ResourceAddTwo.mp4code,
resourcebelong = 3,
resourceclass = 5,
resourcecover = APP.ResourceAddTwo.coverpath,
resourcename = Resourcename,
resourcesize = Resourcesize,
resourcetype = 10,
resourceurl = APP.ResourceAddTwo.videopath,
schoolid = APP.UserInfo.Schoolid
};
});
if (Suffix.Equals("FLV"))
{
Suffix = "flv";
}
else if (Suffix.Equals("AVI"))
{
Suffix = "avi";
}
else
{
Suffix = "mp4";
}
model_ResourceAdd.suffix = Suffix;
//model_ResourceAdd.uid = 0;//zxy
int code = xhapi.ResourceAdd(model_ResourceAdd);
if (code == 0)
{
Dispatcher.Invoke(() =>
{
foreach (Model_WKData Vdata in APP.WKDataList)
{
if (Vdata.VideoList == null)
{
continue;
}
foreach (Model_Video videoinfo in Vdata.VideoList)
{
if (videoinfo.FileGuid == Guid)
{
videoinfo.IsUpload = true;
break;
}
}
}
btnStart.IsEnabled = true;
book_list.IsEnabled = true;
cmbTeachingMaterial.IsEnabled = true;
num = 99;
times.Stop();
pgbProcess.Value = 100;
lbProcess.Content = "100%";
MessageWindow.Show("视频上传成功!");
tip_outer.Visibility = Visibility.Collapsed;
ChangeTextEvents("上传成功", i);
Hide();
});
}
else
{
Dispatcher.Invoke(() =>
{
btnStart.IsEnabled = true;
book_list.IsEnabled = true;
cmbTeachingMaterial.IsEnabled = true;
times.Stop();
tip_outer.Visibility = Visibility.Collapsed;
MessageWindow.Show(APP.ServerMsg);
});
}
}
else
{
Dispatcher.Invoke(() =>
{
btnStart.IsEnabled = true;
book_list.IsEnabled = true;
cmbTeachingMaterial.IsEnabled = true;
times.Stop();
tip_outer.Visibility = Visibility.Collapsed;
MessageWindow.Show(ErrMessage);
});
}
}
catch (Exception ex)
{
Dispatcher.Invoke(() =>
{
btnStart.IsEnabled = true;
book_list.IsEnabled = true;
cmbTeachingMaterial.IsEnabled = true;
times.Stop();
tip_outer.Visibility = Visibility.Collapsed;
MessageWindow.Show("无法上传视频,请检查与服务器链接状态!");
APP.IsUpLoad = false;
Hide();
LogHelper.WriteErrLog("【UploadWindow】(BtnStart_Click)" + ex.Message, ex);
});
}
}
private int num = 0;
///
/// 计时器
///
///
///
///
///
private void Times_ElapsedClick(object sender, System.Timers.ElapsedEventArgs e)
{
Dispatcher.Invoke(() =>
{
pgbProcess.Value = num;
lbProcess.Content = num.ToString() + "%";
if (num < 99)
{
num++;
times.Interval += (num / 2);
}
else
{
times.Stop();
}
});
}
}
public class LoginPageData : NotifyModel
{
public ObservableCollection bookList { get; set; }
public ObservableCollection zhangjieList { get; set; }
public LoginPageData()
{
bookList = new ObservableCollection();
zhangjieList = new ObservableCollection();
}
}
}