/// <summary> /// 出欠状態画面更新 /// </summary> /// <param name="status"></param> private void UpdateAttendance(AttendanceStatusInfo status) { foreach (AttendanceControl ctrl in AttendanceStackPanel.Children) { if (ctrl.NameText.Text.Equals(status.name)) { switch (status.status) { case Status.ATTENDANCE: ctrl.AttendanceButton.Background = Brushes.Green; ctrl.AbsenceButton.Background = Brushes.Gray; ctrl.TardyButton.Background = Brushes.Gray; break; case Status.ABSENCE: ctrl.AttendanceButton.Background = Brushes.Gray; ctrl.AbsenceButton.Background = Brushes.Green; ctrl.TardyButton.Background = Brushes.Gray; break; case Status.ARRIVINGlLATE: ctrl.AttendanceButton.Background = Brushes.Gray; ctrl.AbsenceButton.Background = Brushes.Gray; ctrl.TardyButton.Background = Brushes.Green; break; default: throw new Exception("出勤ステータス異常"); } } } }
/// <summary> /// ステータス変更通知受信 /// 変更された情報をもとに、表示を変更する /// </summary> /// <param name="name"></param> void ChangeStateNotify(AttendanceStatusInfo status) { //表示を更新する Console.WriteLine("ChangeStateNotify() name:" + status.name); this.Dispatcher.BeginInvoke( new Action(() => { UpdateAttendance(status); }) ); }
internal AttendanceStatus(List <string> names) { foreach (string name in names) { AttendanceStatusInfo addData = new AttendanceStatusInfo(); addData.name = name; addData.status = Status.ABSENCE; addData.arrivalTime = DateTime.MinValue; addData.remarksColumn = ""; attendanceStatusList.Add(addData); } }
/// <summary> /// NFC読み取り通知受信(delegate通知) /// </summary> /// <param name="status"></param> /// <param name="idm"></param> internal void ReadComplete(ReadTask.ReadStatus status, string idm) { try { //Console.WriteLine(MethodBase.GetCurrentMethod().Name + ", IDm(" + idm + ")"); AttendanceStatusInfo info = dataManager.UpdateAttendanceStatus(idm); ChangeStateNotify(info); } catch (MemberListFileException e) { MessageBox.Show("登録されていないカードです"); } }
internal AttendanceStatusInfo UpdateAttendanceStatus(string name, Status status) { for (int i = 0; i < attendanceStatusList.Count; i++) { if (attendanceStatusList[i].name.Equals(name)) { AttendanceStatusInfo info = attendanceStatusList[i]; info.status = status; attendanceStatusList[i] = info; return(info); } } Console.WriteLine("UpdateAttendanceStatus() " + name); throw new MemberListFileException("更新対象のデータが存在しません"); }