using Common.system;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading;
using System.Windows;
using System.Windows.Input;
using System.Windows.Threading;
using XHZB.Desktop.Utils;
using XHZB.Desktop.WebSocket;
using XHZB.Model;
namespace XHZB.Desktop
{
///
/// 点名抢答
///
public partial class RollCallWindow : Window, SocketCallback
{
#region 值初始化
///
/// 服务返回 0成功
///
private readonly int serverReturnCode = 0;
internal RollCallPageData pageData = new RollCallPageData();
private readonly RegisterController registerController = new RegisterController();
internal string backgroundOpacity = "0.5";
private readonly Random rd = new Random();
private readonly int[] iArrty = new int[3] { 201314, 201314, 201314 };
private static string userids = string.Empty;
private static string useridss = string.Empty;
private static string useridsss = string.Empty;
private static int ranNum = 201314;
private readonly int[] iArray = new int[1];
private static int returnNum = 0;
//private bool isSjdm = false;
internal double pwidth = SystemParameters.PrimaryScreenWidth;
internal double pHeight = SystemParameters.PrimaryScreenHeight;
private RollCallPerfectionWindow rollCallPerfectionWindow;
///
/// 随机点名
///
private bool isRollCall = false;
///
/// 抢答
///
private bool isRushToAnswer = false;
public string BackgroundOpacity
{
get => backgroundOpacity;
set => backgroundOpacity = value;
}
///
/// 随机几率 1高 2中 3低
///
string flag = "1";
int rNum = 999;
#endregion 值初始化
///
/// 课堂点名
///
public RollCallWindow()
{
InitializeComponent();
WindowStartupLocation = WindowStartupLocation.CenterScreen;
if (!File.Exists(APP.dataPath + "randomProbability.txt")) //若为空
{
flag = "1";
}
else
{
flag = System.IO.File.ReadAllText(APP.dataPath + "randomProbability.txt", Encoding.Default);
}
Initialize();
WSocketClient.getInstance().addWin(this);
}
///
/// 初始化
///
public void Initialize()
{
userids = string.Empty;
useridss = string.Empty;
useridsss = string.Empty;
returnNum = 0;
rNum = 999;
APP.RollCallList = new System.Collections.Generic.List();
imgRandomRollCall.Visibility = Visibility.Visible;
imgRandomRollCallTwo.Visibility = Visibility.Collapsed;
imgAnswer.Visibility = Visibility.Visible;
imgAnswerTwo.Visibility = Visibility.Collapsed;
stpAnswer.Visibility = Visibility.Collapsed;
//ToolbarWindow.IsNotOperation = true;
IsRandomRollCallButton = false;
//初始化配置文件
//ZJConfigUtil.init();
initPageData();
//ZSocketServer.getInstance().addWin(this);
}
public void userListChange()
{
Console.WriteLine("本节考勤-渲染用户列表");
Dispatcher.BeginInvoke(DispatcherPriority.Normal,
new Action(() =>
{
receiveWsMsg(null);
}));
}
public void receiveWsMsg(SocketModel msg)
{
if (!isRollCall && !isRushToAnswer)
{
initPageData();
}
if (msg != null && msg.c == 2021)
{
Console.WriteLine(msg);
#region 去重
for (int i = 0; i < pageData.userList.Count; i++)
{
if (msg.b.stid.ToString().Equals(pageData.userList[i].ID))
{
return;
}
}
#endregion
//Askstudent askstudent = new Askstudent
//{
// roomid = ZCommonData.roomid,
// studentid = msg.body.userid
//};
//askstudent.asktid = ZCommonData.askid;
//askstudent.schoolid = ZCommonData.loginUser.schoolid;
//askstudent.createtime = DataProvider.TimestampTotalSeconds();
//askstudent.studentselected = 0;
//askstudent.radiocorrect = 0;
//askstudent.classid = msg.body.classid;
//ZSqliteManger.insertClassData(new ClassData()
//{
// unix = DataProvider.TimestampTotalSeconds(),
// roomid = ZCommonData.roomid,
// api = "askstudent",
// json = ZJsonHelper.ToJson(askstudent),
// askid = ZCommonData.askid
//});
System.Collections.Generic.List callList = APP.RollCallList;
bool isUserid = true;
//if (TeachingDataStatic.RollCallStatisticsList.Count > 0)//统计抢答
//{
// for (int i = 0; i < TeachingDataStatic.RollCallStatisticsList.Count; i++)
// {
// if (TeachingDataStatic.RollCallStatisticsList[i].userid == msg.body.userid)
// {
// TeachingDataStatic.RollCallStatisticsList[i].replies += 1;
// isUserid = false;
// break;
// }
// }
//}
if (isUserid)
{//统计
//Shared.TeachingData.rollCall = new RollCall
//{
// usertype = msg.usertype,
// userid = msg.body.userid,
// username = msg.body.username,
// userpic = msg.body.userpic,
// replies = 1
//};
//TeachingDataStatic.RollCallStatisticsList.Add(Shared.TeachingData.rollCall);
//Shared.TeachingData.rollCall = new RollCall();
}
Dispatcher.Invoke(DispatcherPriority.Normal,
new Action(() =>
{
//try
//{
// if (pageData.userList.Count > 0)
// {
// if (pageData.userList[pageData.userList.Count - 1].askid != msg.body.asktid)
// {
// pageData.userList.Clear();
// }
// }
//}
//catch (Exception ex)
//{
// LogHelper.WriteErrLog("【抢答】(receiveWsMsg)socket移除askid不一致用户," + ex.Message, ex);
//}
//renderView();
returnNum++;
if (returnNum <= 18)
{
string medal = "../Images/RollCall/02log-1.png";
string attendance = "../Images/RollCall/attendance_3.png";
if (returnNum == 1)
{
medal = "../Images/RollCall/rollCall_7.png";
attendance = "../Images/RollCall/attendance_33.png";
}
else if (returnNum == 2)
{
medal = "../Images/RollCall/rollCall_5.png";
attendance = "../Images/RollCall/attendance_33.png";
}
else if (returnNum == 3)
{
medal = "../Images/RollCall/rollCall_6.png";
attendance = "../Images/RollCall/attendance_33.png";
}
string userpic = msg.b.stpic;
if (ZCache.headDic.ContainsKey(userpic.Replace("/", "")))
{
userpic = ZCache.headDic[userpic.Replace("/", "")];
}
else
{
userpic = "../Images/RollCall/attendance_1.png";
}
pageData.userList.Add(new RollCallPageData()
{
Name = msg.b.stname,
Attendance_33 = "Collapsed",
Attendance_3 = "Visible",
Pic = userpic,
ID = msg.b.stid.ToString(),
Attendance = attendance,
Medal = medal,
});
stpAnswer.Visibility = Visibility.Visible;
}
txbNumberOfReplies.Text = returnNum.ToString();
}));
}
}
System.Collections.Generic.List raduser = new System.Collections.Generic.List();
System.Collections.Generic.List userListNew = new System.Collections.Generic.List();
private void initPageData()
{
Dispatcher.Invoke(DispatcherPriority.Normal,
new Action(() =>
{
if (pageData.userList.Count > 0)
{
pageData.userList.Clear();
}
List userList = APP.OnlineUserList;
userListNew = new List();
string userlistStr = JsonHelper.ToJson(userList);
userListNew = JsonToList(userlistStr);
List classStudentList = APP.ClassStudentList;
for (int i = 0; i < classStudentList.Count; i++)
{
classStudentList[i].status = 0;
for (int j = 0; j < userListNew.Count; j++)
{
if (classStudentList[i].studentid == userListNew[j].userid)
{
userListNew[j].num = classStudentList[i].num;
}
}
}
if (userListNew.Count > 0)
{
//OrderbyDescending 倒叙 OrderBy 顺序
raduser = userListNew.OrderBy(x => x.num).ToList();
}
foreach (OnlineUserModel user in userListNew)
{
string userpic = user.userpic;
if (ZCache.headDic.ContainsKey(userpic.Replace("/", "")))
{
userpic = ZCache.headDic[userpic.Replace("/", "")];
}
else
{
userpic = "../Images/RollCall/attendance_1.png";
}
pageData.userList.Add(new RollCallPageData()
{
Name = user.username,
Attendance_33 = "Collapsed",
Attendance_3 = "Visible",
Pic = userpic,
ID = user.userid.ToString(),
Attendance = "../Images/RollCall/attendance_3.png"
});
foreach (ClassStudentListModel cl in classStudentList)
{
if (cl.studentid == user.userid)
{
cl.status = 1;
}
}
}
string notOnline = string.Empty;
foreach (ClassStudentListModel cl in classStudentList)
{
if (cl.status == 0)
{
notOnline += cl.studentname + " ";
}
}
if (!string.IsNullOrWhiteSpace(notOnline))
{
txbNotOnline.Text = notOnline;
}
else
{
txbNotOnline.Text = "暂无";
}
toolbar_list.DataContext = pageData;
}));
}
internal static List JsonToList(string respstr)
{
JsonSerializer serializer = new JsonSerializer();
StringReader sr = new StringReader(respstr);
object o = serializer.Deserialize(new JsonTextReader(sr), typeof(List));
List list = o as List;
return list;
}
///
/// 是否已经按下按钮
///
public bool IsRandomRollCallButton = false;
///
/// 随机点名
///
///
///
private void btnRandomRollCall_Click(object sender, RoutedEventArgs e)
{
if (!IsRandomRollCallButton)
{
IsRandomRollCallButton = true;
userids = string.Empty;
useridss = string.Empty;
useridsss = string.Empty;
returnNum = 0;
APP.RollCallList = new System.Collections.Generic.List();
stpAnswer.Visibility = Visibility.Collapsed;
imgRandomRollCall.Visibility = Visibility.Collapsed;
imgRandomRollCallTwo.Visibility = Visibility.Visible;
imgAnswer.Visibility = Visibility.Visible;
imgAnswerTwo.Visibility = Visibility.Collapsed;
initPageData();
if (isRushToAnswer)//如果抢答没有结束 先结束抢答
{
//ZSocketServer.getInstance().SendMessage(ZSocketMsgManger.qiangdaEnd());
isRushToAnswer = false;
}
if (APP.OnlineUserList.Count > 0)//判断当前在线人数大于0 点击才有效 ceshi=
{
isRollCall = true;
Thread.Sleep(500);
APP.BackgroundWorkerHelper.RunWorkerAsync(InvokeRandomRollCallServering, InvokeRandomRollCallServerCompate);
}
else
{
IsRandomRollCallButton = false;
}
}
}
///
/// 点名抽奖效果
///
///
private object InvokeRandomRollCallServering()
{
try
{
if (ranNum != 201314 && ranNum != 0)
{
if (ranNum < pageData.userList.Count)
{
pageData.userList[ranNum].Attendance_33 = "Collapsed";
pageData.userList[ranNum].Attendance_3 = "Visible";
Thread.Sleep(500);
}
}
int randomTimes = 0;//随机次数
ranNum = 0;//随机到用户的下标
if (pageData.userList.Count == 1)//当前在线1人直接选中
{
pageData.userList[0].Attendance_33 = "Collapsed";
pageData.userList[0].Attendance_3 = "Visible";
Thread.Sleep(500);
pageData.userList[0].Attendance_33 = "Visible";
pageData.userList[0].Attendance_3 = "Collapsed";
}
else
{
randomTimes = 10;
//if (TeachingDataStatic.OnlineUserList.Count > 0)
//{
// //OrderbyDescending 倒叙 OrderBy 顺序
// raduser = raduser.OrderBy(x => x.num).ToList();
//}
int ranNumberOfPeople = 999;
if ("1".Equals(flag) && raduser.Count > 5)
{
do
{
long tick = DateTime.Now.Ticks;
Random ran = new Random((int)(tick & 0xffffffffL) | (int)(tick >> 32));
ranNumberOfPeople = ran.Next(5);
for (int i = 0; i < userListNew.Count; i++)
{
if (userListNew[i].userid == raduser[ranNumberOfPeople].userid)
{
ranNumberOfPeople = i;
break;
}
}
} while (ranNumberOfPeople == rNum);
raduser[ranNumberOfPeople].num += 1;
}
else if ("2".Equals(flag) && raduser.Count > 15)
{
do
{
long tick = DateTime.Now.Ticks;
Random ran = new Random((int)(tick & 0xffffffffL) | (int)(tick >> 32));
ranNumberOfPeople = ran.Next(15);
for (int i = 0; i < userListNew.Count; i++)
{
if (userListNew[i].userid == raduser[ranNumberOfPeople].userid)
{
ranNumberOfPeople = i;
break;
}
}
} while (ranNumberOfPeople == rNum);
raduser[ranNumberOfPeople].num += 1;
}
else if (raduser.Count > 30)
{
do
{
long tick = DateTime.Now.Ticks;
Random ran = new Random((int)(tick & 0xffffffffL) | (int)(tick >> 32));
ranNumberOfPeople = ran.Next(30);
for (int i = 0; i < userListNew.Count; i++)
{
if (userListNew[i].userid == raduser[ranNumberOfPeople].userid)
{
ranNumberOfPeople = i;
break;
}
}
raduser[ranNumberOfPeople].num += 1;
} while (ranNumberOfPeople == rNum);
}
else
{
ranNumberOfPeople = 999;
}
//if (APP.outputInforLog)
//{
// LogHelper.WriteInfoLog("ranNum:" + TeachingDataStatic.OnlineUserList[ranNum].username + "&" + raduser[0].username + raduser[1].username + raduser[2].username + raduser[3].username + raduser[4].username + raduser[5].username);
//}
int ranNums = 0;//记录上一次随机的下标
for (int i = 0; i < randomTimes; i++)
{
Thread.Sleep(200);
if (i > 0)
{
pageData.userList[ranNum].Attendance_33 = "Collapsed";
pageData.userList[ranNum].Attendance_3 = "Visible";
}
while (ranNums == ranNum)//保证这次随机的下标和上次不相同
{
long tick = DateTime.Now.Ticks;
Random ran = new Random((int)(tick & 0xffffffffL) | (int)(tick >> 32));
ranNum = ran.Next(pageData.userList.Count);
if (i == 9 && ranNumberOfPeople != 999)
{
ranNum = ranNumberOfPeople;
break;
}
if (pageData.userList.Count < 3)
{
break;
}
}
ranNums = ranNum;
rNum = ranNum;
pageData.userList[ranNum].Attendance_33 = "Visible";
pageData.userList[ranNum].Attendance_3 = "Collapsed";
}
}
}
catch (Exception ex)
{
LogHelper.WriteErrLog("【抢答点名(RollCallWindow)" + ex.Message, ex);
}
return APP.ErrorMessage;
}
///
/// 点名抽奖效果-返回结果
///
///
public void InvokeRandomRollCallServerCompate(object obj)
{
APP.BackgroundWorkerHelper.RunWorkerAsync(InvokeInteractiveLaunchsServering, InvokeInteractiveLaunchsServerCompate);
}
private void frm_ChangeTextEvent(string text)
{
if ("重新点名".Equals(text))
{
returnNum = 0;
WSocketClient.getInstance().SendMessage(SocketMsgManger.RandomRollCallEndMsg());
//ZSocketServer.getInstance().SendMessage(ZSocketMsgManger.qiangdaEnd());
initPageData();
IsRandomRollCallButton = true;
if (APP.OnlineUserList.Count > 0)//判断当前在线人数大于0 点击才有效
{
isRollCall = true;
APP.BackgroundWorkerHelper.RunWorkerAsync(InvokeRandomRollCallServering, InvokeRandomRollCallServerCompate);
}
}
else if ("关闭窗口".Equals(text))
{
returnNum = 0;
userids = string.Empty;
useridss = string.Empty;
useridsss = string.Empty;
isRollCall = false;
isRushToAnswer = false;
WSocketClient.getInstance().SendMessage(SocketMsgManger.RandomRollCallEndMsg());
IsRandomRollCallButton = false;
//ToolbarWindow.IsOpenRollCallWindow = false;
Hide();
}
}
private void Window_MouseLeftButtonDown_1(object sender, MouseButtonEventArgs e)
{
DragMove();
}
///
/// 关闭
///
///
///
private void btnDown_Click(object sender, RoutedEventArgs e)
{
WSocketClient.getInstance().SendMessage(SocketMsgManger.RushToAnswerEndMsg());
//ToolbarWindow.IsNotOperation = false;
APP.myloading.Show();
new Thread(o =>
{
returnNum = 0;
userids = string.Empty;
useridss = string.Empty;
useridsss = string.Empty;
isRollCall = false;
isRushToAnswer = false;
APP.RollCallList = new List();
Dispatcher.Invoke(new Action(() =>
{
ToolbarWindow.IsOpenRollCallWindow = false;
APP.myloading.Hide();
Hide();
}));
}).Start();
}
///
/// 抢答
///
///
///
private void btnAnswer_Click(object sender, RoutedEventArgs e)
{
WSocketClient.getInstance().SendMessage(SocketMsgManger.RushToAnswerMsg());
if (!IsRandomRollCallButton)
{
returnNum = 0;
userids = string.Empty;
useridss = string.Empty;
useridsss = string.Empty;
APP.RollCallList = new System.Collections.Generic.List();
imgRandomRollCall.Visibility = Visibility.Visible;
imgRandomRollCallTwo.Visibility = Visibility.Collapsed;
imgAnswer.Visibility = Visibility.Collapsed;
imgAnswerTwo.Visibility = Visibility.Visible;
//initPageData();
if (isRollCall)//如果随机点名没有结束 发送结束随机点名消息
{
//ZSocketServer.getInstance().SendMessage(ZSocketMsgManger.qiangdaEnd());
isRollCall = false;
}
if (APP.OnlineUserList.Count > 0)//判断当前在线人数大于0 点击才有效
{
if (pageData.userList.Count > 0)
{
pageData.userList.Clear();
}
//TeachingDataStatic.rollCallNum += 1;
txbNumberOfReplies.Text = "0";
isRushToAnswer = true;
APP.BackgroundWorkerHelper.RunWorkerAsync(InvokeInteractiveLaunchServering, InvokeInteractiveLaunchServerCompate);
}
else
{
isRushToAnswer = false;
}
}
}
///
/// 互动 抢答服务-调用
///
///
private object InvokeInteractiveLaunchServering()
{
//Askteacher askteacher = new Askteacher
//{
// roomid = ZCommonData.roomid,
// asktype = 20,
// schoolid = ZCommonData.loginUser.schoolid,
// asktid = DataProvider.TimestampAddRandomNumber(),
// createtime = DataProvider.TimestampTotalSeconds(),
// asktnum = 0
//};
//ZCommonData.askid = askteacher.asktid;
//ZSqliteManger.insertClassData(new ClassData()
//{
// unix = DataProvider.TimestampTotalSeconds(),
// roomid = ZCommonData.roomid,
// api = "askteacher",
// json = ZJsonHelper.ToJson(askteacher),
// askid = askteacher.asktid
//});
//string msg = ZSocketMsgManger.qiangdaBegin(ZCommonData.askid);
//ZSocketServer.getInstance().SendMessage(msg);
//ZSqliteManger.insertClassAction(new ClassAction()
//{
// unix = DataProvider.TimestampTotalSeconds(),
// roomid = ZCommonData.roomid,
// type = 401,
// json = msg,
// askid = ZCommonData.askid
//});
return APP.ErrorMessage;
}
///
/// 互动 抢答服务-返回结果
///
///
public void InvokeInteractiveLaunchServerCompate(object obj)
{
}
///
/// 互动 随机点名 服务-调用
///
///
private object InvokeInteractiveLaunchsServering()
{
//Askteacher askteacher = new Askteacher
//{
// roomid = ZCommonData.roomid,
// asktype = 21,
// schoolid = ZCommonData.loginUser.schoolid,
// asktid = DataProvider.TimestampAddRandomNumber(),
// createtime = DataProvider.TimestampTotalSeconds(),
// asktnum = 0
//};
//ZCommonData.askid = askteacher.asktid;
//ZSqliteManger.insertClassData(new ClassData()
//{
// unix = DataProvider.TimestampTotalSeconds(),
// roomid = ZCommonData.roomid,
// api = "askteacher",
// json = ZJsonHelper.ToJson(askteacher),
// askid = askteacher.asktid
//});
OnlineUserModel user = APP.OnlineUserList[ranNum];
Console.WriteLine("ranNum:" + ranNum.ToString() + @user.username + "Ci" + user.num.ToString());
//Askstudent askstudent = new Askstudent
//{
// roomid = ZCommonData.roomid,
// studentid = user.userid,
// asktid = ZCommonData.askid,
// classid = ZCommonData.classid,
// schoolid = ZCommonData.loginUser.schoolid,
// createtime = DataProvider.TimestampTotalSeconds(),
// studentselected = 1,
// radiocorrect = 0
//};
//ZSqliteManger.insertClassData(new ClassData()
//{
// unix = DataProvider.TimestampTotalSeconds(),
// roomid = ZCommonData.roomid,
// api = "askstudent",
// json = ZJsonHelper.ToJson(askstudent),
// askid = askteacher.asktid
//});
WSocketClient.getInstance().SendMessage(SocketMsgManger.RandomRollCallMsg(user.userid));
//ZSqliteManger.insertClassAction(new ClassAction()
//{
// unix = DataProvider.TimestampTotalSeconds(),
// roomid = ZCommonData.roomid,
// type = 411,
// json = msg,
// askid = ZCommonData.askid
//});
return APP.ErrorMessage;
}
///
/// 互动 随机点名服务-返回结果
///
///
public void InvokeInteractiveLaunchsServerCompate(object obj)
{
if (serverReturnCode == APP.ServerScuessCode)
{
OnlineUserModel user = APP.OnlineUserList[ranNum];
string userpic = user.userpic;
string userpicPath = "../Images/RollCall/attendance_1.png";
if (ZCache.headDic.ContainsKey(userpic.Replace("/", "")))
{
userpicPath = ZCache.headDic[userpic.Replace("/", "")];
}
try
{
#region 随机次数增加
for (int i = 0; i < APP.ClassStudentList.Count; i++)
{
if (APP.ClassStudentList[i].studentid == user.userid)
{
APP.ClassStudentList[i].num += 1;
break;
}
}
#endregion
bool isUserid = true;
//if (TeachingDataStatic.RandomRollCallStatisticsList.Count > 0)
//{
// for (int i = 0; i < TeachingDataStatic.RandomRollCallStatisticsList.Count; i++)
// {
// if (TeachingDataStatic.RandomRollCallStatisticsList[i].userid == user.userid)
// {
// TeachingDataStatic.RandomRollCallStatisticsList[i].replies += 1;
// isUserid = false;
// break;
// }
// }
//}
if (isUserid)
{
//RandomRollCallStatistics randomRollCallStatistics = new RandomRollCallStatistics
//{
// username = user.username,
// userid = user.userid,
// userpicPath = userpicPath,
// replies = 1
//};
//TeachingDataStatic.RandomRollCallStatisticsList.Add(randomRollCallStatistics);
//randomRollCallStatistics = new RandomRollCallStatistics();
}
}
catch (Exception ex)
{
LogHelper.WriteErrLog("【课堂点名(RollCallWindow)】错误日志:" + ex.Message, ex);
}
try
{
if (rollCallPerfectionWindow == null)
{
rollCallPerfectionWindow = new RollCallPerfectionWindow(
user.username,
userpicPath
)
{
Topmost = true,
Width = pwidth,
Height = pHeight,
Left = 0,
Top = 0
};
//订阅事件
rollCallPerfectionWindow.ChangeTextEvent += new ChangeTextHandler(frm_ChangeTextEvent);
rollCallPerfectionWindow.Owner = this;
}
else
{
rollCallPerfectionWindow.Name(user.username);
}
rollCallPerfectionWindow.Show();
}
catch (Exception ex)
{
LogHelper.WriteErrLog("【课堂点名(RollCallWindow)】错误日志:" + ex.Message, ex);
}
}
}
///
/// 页面关闭
///
///
///
private void Window_Closed(object sender, EventArgs e)
{
//ToolbarWindow.IsNotOperation = false;
click_closeClick();
WSocketClient.getInstance().removedWin(this);
}
#region 关闭委托
///
/// 关闭委托 结束页面 创建人:赵耀 创建时间:2020年8月13日
///
///
///
public delegate void CloseClick();
///
/// 关闭委托 结束页面 创建人:赵耀 创建时间:2020年8月13日
///
public event CloseClick click_closeClick;
#endregion 关闭委托
}
public class RollCallPageData : NotifyModel
{
public ObservableCollection userList { get; set; }
internal string _name;
public string Name
{
get => _name;
set { _name = value; OnPropertyChanged("Name"); }
}
internal string _id;
public string ID
{
get => _id;
set { _id = value; OnPropertyChanged("ID"); }
}
internal string _Pic;
public string Pic
{
get => _Pic;
set { _Pic = value; OnPropertyChanged("Pic"); }
}
internal string _attendance = "";
public string Attendance
{
get => _attendance;
set { _attendance = value; OnPropertyChanged("Attendance"); }
}
internal string _attendance_3 = "Visible";
public string Attendance_3
{
get => _attendance_3;
set { _attendance_3 = value; OnPropertyChanged("Attendance_3"); }
}
internal string _attendance_33 = "Visible";
public string Attendance_33
{
get => _attendance_33;
set { _attendance_33 = value; OnPropertyChanged("Attendance_33"); }
}
internal string _medal = "../Images/noting.png";
public string Medal
{
get => _medal;
set { _medal = value; OnPropertyChanged("Medal"); }
}
public long askid { get; set; }
public RollCallPageData()
{
userList = new ObservableCollection();
}
}
}