JianGongYun/JianGongYun/Views/Login.xaml.cs

108 lines
3.8 KiB
C#

using AduSkin.Controls;
using AduSkin.Controls.Metro;
using JianGongYun.TRTC;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
using System.Linq;
using System.Web;
namespace JianGongYun.Views
{
/// <summary>
/// Login.xaml 的交互逻辑
/// </summary>
public partial class Login : MetroWindow
{
const string CLASS_HEAD = "--classhead";
const string CLASS_SUB_HEAD = "--classsubhead";
const string TEACHER_ID = "--teacherid";
const string TEACHER_NAME = "--teachername";
const string END_TIME = "endtime";
public Login()
{
InitializeComponent();
this.Icon = new BitmapImage(new Uri("logo.ico", UriKind.Relative));
string errMsg = "", classHead = default, classSubHead = default, teacherId = default, teacherName = default, endtime = default;
var urltemps = Environment.GetCommandLineArgs();
if (urltemps.Length < 2)
{
errMsg = $"Startup Parameter Null";
goto Skip;
}
var first = urltemps[1];
if (!first.StartsWith("sznykt"))
{
errMsg = "Startup Parameter Error";
goto Skip;
}
var args = HttpUtility.UrlDecode(first, Encoding.UTF8).Replace("://", "|").Split("|");
int indexTemp = Array.IndexOf(args, CLASS_HEAD);
if (indexTemp < 0)
{
errMsg = $"{nameof(classHead)} NULL";
goto Skip;
}
classHead = args[indexTemp + 1];
indexTemp = Array.IndexOf(args, CLASS_SUB_HEAD);
if (indexTemp < 0)
{
errMsg = $"{nameof(CLASS_SUB_HEAD)} NULL";
goto Skip;
}
classSubHead = args[indexTemp + 1];
indexTemp = Array.IndexOf(args, TEACHER_ID);
if (indexTemp < 0)
{
errMsg = $"{nameof(TEACHER_ID)} NULL";
goto Skip;
}
teacherId = args[indexTemp + 1];
indexTemp = Array.IndexOf(args, TEACHER_NAME);
if (indexTemp < 0)
{
errMsg = $"{nameof(TEACHER_NAME)} NULL";
goto Skip;
}
teacherName = args[indexTemp + 1];
indexTemp = Array.IndexOf(args, END_TIME);
if (indexTemp < 0)
{
errMsg = $"{nameof(END_TIME)} NULL";
goto Skip;
}
endtime = args[indexTemp + 1];
Skip:
if (!string.IsNullOrWhiteSpace(errMsg))
{
MessageBox.Show(errMsg, "错误", MessageBoxButton.OKCancel, MessageBoxImage.Error);
Environment.Exit(0);
return;
}
LiveClassroom.EnterTheClassroom(Window.GetWindow(this),
new TRTC.Models.ClassroomEntity
{
ClassHead = classHead,
ClassSubHead = classSubHead,
TeacherId = teacherId,
TeacherName = teacherName,
EndTime = string.IsNullOrEmpty(endtime) ? null : new DateTime?(DateTime.Parse(Encoding.UTF8.GetString(Convert.FromBase64String(endtime))))
});
}
}
}