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 { /// /// UploadWindow.xaml 的交互逻辑 /// public partial class UploadWindow : Window { /// /// 调用接口 /// private readonly Interface @interface = new Interface(); /// /// 前台数据 /// 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 = @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); } } /// /// 章节接口调用 /// 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); } } /// /// 子章节递归 /// /// 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); } } } } /// /// 章节是否加空格符 /// /// /// 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("请选择教材!"); } 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(() => { 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(); } } }