private void onExamCarChangeMessage(ExamCarChangeMessage message) { var examCar = message.ExamCar; var control = GetCarExamControl(examCar.Position); control.Position = examCar.Position; control.IDCard = examCar.ExamStudent.IdCard; //把这个车辆位置信息更新到内存中 if (lstPosition.Where(s => s.Key == examCar.Position).Count() >= 0) { var Item = lstPosition.Where(s => s.Key == examCar.Position).FirstOrDefault(); lstPosition.Remove(Item); var newItem = new KeyValuePair <int, string>(examCar.Position, examCar.ExamStudent.IdCard); lstPosition.Add(newItem); } else { var newItem = new KeyValuePair <int, string>(examCar.Position, examCar.ExamStudent.IdCard); lstPosition.Add(newItem); } control.updateExamCarInfo(message); }
private void btnSave_Click(object sender, EventArgs e) { //同一个人不能绑定两个车 var IdCard = cmbExamStudent.Text.Split(',')[1]; var examCarID = Convert.ToInt32(txtID.Text); var otherCarEntities = examCarRepository.LoadEntities(s => s.Id != examCarID && s.ExamStudent.IdCard == IdCard); if (otherCarEntities.Count() > 0) { foreach (var item in otherCarEntities) { item.ExamStudentId = null; examCarRepository.UpdateEntity(item); } } var examstudent = examStudentRepository.LoadEntitiy(s => s.IdCard == IdCard); // 其实还需要一个ID ExamCar examCar = examCarRepository.LoadEntitiy(s => s.Id == examCarID); examCar.Ip = txtIP.Text.ToString(); examCar.Port = Convert.ToInt32(txtPort.Text); examCar.ExamStudentId = examstudent.Id; examCar.LicensePlate = txtLicensePlate.Text; examCarRepository.UpdateEntity(examCar); message = new ExamCarChangeMessage(examCar); //发送消息 Messenger.Send <ExamCarChangeMessage>(message); //更新之后刷新列表 //发送消息 BindExamCar(); MessageBox.Show("修改成功", "车辆管理"); }
//IP 地址201 620A private void btnSave_Click(object sender, EventArgs e) { //要不直接执行Sql 更新? //不在使用EF更新? //同一个人不能绑定两个车 var IdCard = cmbExamStudent.Text.Split(',')[1]; var examCarID = Convert.ToInt32(txtID.Text); var otherCarEntitiy = examCarRepository.LoadEntities(s => s.Id != examCarID && s.ExamStudent.IdCard == IdCard).FirstOrDefault();; //todo:设计Bug //如果这个学员有绑定其他车辆 那么这个学员 怎么办? //如果我删除关系会怎么样? //如果这个人选中路 //todo:bug 在这点 //可以这样添加一个学员车辆关系表 //这样就可以知道学员那辆车了 //其实我只要解决了更新头像Bug就可以了 //这样还是会更新下// if (otherCarEntitiy != null) { otherCarEntitiy.ExamStudentId = null; examCarRepository.UpdateEntity(otherCarEntitiy); } //其实这点不需要取查询了 var examstudent = examStudentRepository.LoadEntitiy(s => s.IdCard == IdCard); // 其实还需要一个ID // 如果我不执行更新操作 //会怎么样? ExamCar examCar = examCarRepository.LoadEntitiy(s => s.Id == examCarID); examCar.Ip = txtIP.Text.ToString(); examCar.Port = Convert.ToInt32(txtPort.Text); examCar.ExamStudentId = examstudent.Id; examCar.LicensePlate = txtLicensePlate.Text; examCar.ExamStudent = examstudent; examCarRepository.UpdateEntity(examCar); message = new ExamCarChangeMessage(examCar); //发送消息 Messenger.Send <ExamCarChangeMessage>(message); //更新之后刷新列表 //发送消息 BindExamCar(); MessageBox.Show("修改成功", "车辆管理"); }
private void onExamCarChangeMessage(ExamCarChangeMessage message) { var examCar = message.ExamCar; var control = GetCarExamControl(examCar.Position); control.Position = examCar.Position; control.LicensePlate = examCar.LicensePlate; control.IDCard = examCar.ExamStudent.IdCard; //把这个车辆位置信息更新到内存中 if (lstPosition.Where(s => s.Key == examCar.Position).Count() >= 0) { var Item = lstPosition.Where(s => s.Key == examCar.Position).FirstOrDefault(); lstPosition.Remove(Item); } var newItem = new KeyValuePair <int, string>(examCar.Position, examCar.ExamStudent.IdCard); lstPosition.Add(newItem); carSignal.CreateSendSocket(examCar.Ip, examCar.Port, examCar.Position); //如果主程需收到消息 //就需要更新 control.updateExamCarInfo(message); }
/// <summary> /// 接收到考试车辆发送改变消息 /// </summary> /// <param name="message"></param> public void updateExamCarInfo(ExamCarChangeMessage message) { CurrentExamCar = message.ExamCar; var examStudent = message.ExamCar.ExamStudent; lblNameStatusScore.Text = string.Format("姓名:{0} 状态:初考 成绩:100分", examStudent.Name); lblIdCard.Text = string.Format("身份证号码:{0}", examStudent.IdCard); lblLicensePlateUseTime.Text = string.Format("车牌:{0} 用时:00:00:00 ", message.ExamCar.LicensePlate); lblSensor.Text = "车速:0 Km/h 转速:0Rpm 卫星:0 精度:0 纬度:0 里程:0米"; IDCard = examStudent.IdCard; LicensePlate = message.ExamCar.LicensePlate; if (examStudent.IDCardImage != null) { var Image = BytesToImage(examStudent.IDCardImage); PictureBoxIDCard.Image = Image; } //更新头像 Init(); }
/// <summary> /// 接收到考试车辆发送改变消息 /// </summary> /// <param name="message"></param> public void updateExamCarInfo(ExamCarChangeMessage message) { var examStudent = message.ExamCar.ExamStudent; updateExamCarInfo(examStudent, message.ExamCar); }