using Common.system; using System; using System.Collections.ObjectModel; using System.Threading; 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 { /// <summary> /// UploadWindow.xaml 的交互逻辑 /// </summary> public partial class UploadWindow : Window { /// <summary> /// 调用接口 /// </summary> private readonly Interface @interface = new Interface(); /// <summary> /// 前台数据 /// </summary> internal LoginPageData pageData = new LoginPageData(); /// <summary> /// 文件名 /// </summary> private string Resourcename = string.Empty; /// <summary> /// 文件大小 /// </summary> private long Resourcesize = 0; /// <summary> /// 文件类型 /// </summary> private string Suffix = string.Empty; /// <summary> /// 唯一编号 /// </summary> private string Guid = string.Empty; //定义事件 public event ChangeTextHandlers ChangeTextEvents; /// <summary> /// 当前视频的下标 /// </summary> private int i = 0; private System.Timers.Timer times; public UploadWindow() { InitializeComponent(); } /// <summary> /// 初始化 /// </summary> 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(); } /// <summary> /// 教材接口调用 /// </summary> /// <returns></returns> private void Tsubjectbook() { int code = @interface.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}" }); } book_list.SelectedIndex = 0; DataContext = pageData; Director(); } else { MessageWindow.Show(APP.ServerMsg); } } /// <summary> /// 章节接口调用 /// </summary> private void Director() { int selectIndex = book_list.SelectedIndex; if (selectIndex < 0) { selectIndex = 0; } int code = @interface.DirectorList(APP.TsubjectbookList[selectIndex].Lsbid, 2, APP.UserInfo.Userid); if (code == 0) { pageData.zhangjieList.Clear(); pageData.zhangjieList.Add(new ComboBoxBean() { Key = 0, Value = "全部", }); 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 }); addChild(item); } cmbTeachingMaterial.SelectedIndex = 0; } else { MessageWindow.Show(APP.ServerMsg); } } /// <summary> /// 子章节递归 /// </summary> /// <param name="directorList"></param> 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 }); if (child.children != null && child.children.Count > 0) { addChild(child); } } } } /// <summary> /// 章节是否加空格符 /// </summary> /// <param name="num"></param> /// <returns></returns> 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) { } /// <summary> /// 教材下拉框改变事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void toolbar_list_SelectionChanged(object sender, SelectionChangedEventArgs e) { Director(); } private void BtnDown_Click(object sender, RoutedEventArgs e) { APP.IsUpLoad = false; Hide(); } /// <summary> /// 上传到个人空间 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void BtnStart_Click(object sender, RoutedEventArgs e) { if (string.IsNullOrWhiteSpace(book_list.Text)) { MessageWindow.Show("请选择教材!"); } 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 = Convert.ToInt32(cmbTeachingMaterial.SelectedValue.ToString()), duration = APP.ResourceAddTwo.duration, imgUrl = "", level = 2, lsbid = Convert.ToInt32(book_list.SelectedValue.ToString()), mp4code = APP.ResourceAddTwo.mp4code, resourcebelong = 3, resourceclass = 2, resourcecover = APP.ResourceAddTwo.coverpath, resourcename = Resourcename, resourcesize = Resourcesize, resourcetype = 0, 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 = @interface.ResourceAdd(model_ResourceAdd); if (code == 0) { Dispatcher.Invoke(() => { 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; /// <summary> /// 计时器 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> 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<ComboBoxBean> bookList { get; set; } public ObservableCollection<ComboBoxBean> zhangjieList { get; set; } public LoginPageData() { bookList = new ObservableCollection<ComboBoxBean>(); zhangjieList = new ObservableCollection<ComboBoxBean>(); } } }