private bool tictetsState(string userName) { try { using (AppDbEntities context = new AppDbEntities()) { var q = from t in context.UserDetails where t.UserName == userName && t.TicketsState == "未使用" select new { 姓名 = t.Name, 路线 = t.LineNumber, 起始站 = t.StartStation, 终点站 = t.EndStation, 票数 = t.TicketsNum, 时间 = t.Time, 状态 = isIn? "进站":t.TicketsState }; if (q.Count() > 0) { dgUser.Visibility = System.Windows.Visibility.Visible; dgUser.ItemsSource = q.ToList(); return(true); } } }catch (Exception ee) { return(false); } return(false); }
/// <summary> /// 检测用户是否合法并买票 /// </summary> /// <param name="userName"></param> /// <param name="userPassword"></param> /// <param name="ticket"></param> /// <returns></returns> public int buyTicket(string userName, string userPassword, Ticket ticket) { try { using (AppDbEntities context = new AppDbEntities()) { bool isOk = false; string userPasswordTmp = MD5.generateMD5(userPassword); var users = from t in context.UserInfoes where t.UserName == userName && t.Password == userPasswordTmp select t; foreach (var item in users) { if (item.MoneySum - ticket.TotalPrice < 0) { return(-1);//金额不足返回-1 } else { item.MoneySum -= ticket.TotalPrice; //创建购票细节对象 DateTime dt = DateTime.Now; UserDetails userDetail = new UserDetails() { Name = item.Name, UserName = item.UserName, LineNumber = ticket.LineNumber, StartStation = ticket.Source, EndStation = ticket.Destination, TicketsNum = ticket.Number, Time = dt, Money = ticket.TotalPrice, StartTag = ticket.SourceNum, EndTag = ticket.DestinationNum, TicketsState = "未使用" }; context.UserDetails.Add(userDetail); isOk = true; } } if (isOk) { context.SaveChanges(); return(1);//购票成功返回1 } } } catch (Exception ee) { // MessageBox.Show(ee.Message+"路线号:"+ticket.LineNumber+"起始站号:"+ticket.SourceNum+"终点站号:"+ticket.DestinationNum); return(0); //异常出错返回0 } return(2); //用户信息出错返回2 }
private void query_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) { using (AppDbEntities context = new AppDbEntities()) { var q = from t in context.UserInfoes where t.UserName == userName.Text select new { 姓名 = t.Name, 账号 = t.UserName, 余额 = t.MoneySum, 性别 = t.Sex, 手机号码 = t.PhoneNumber, 家庭住址 = t.Address, 身份证号 = t.IdCard, 生日 = t.Birthday, 开户时间 = t.OpenTime, }; imgIsSuccess.Source = new BitmapImage(new Uri("/images/失败.png", UriKind.Relative)); imgIsSuccess.ToolTip = "用户名错误"; imgIsSuccess.Visibility = System.Windows.Visibility.Visible; if (q.Count() == 1) { dgUserInfo.Visibility = System.Windows.Visibility.Visible; imgIsSuccess.Source = new BitmapImage(new Uri("/images/成功.png", UriKind.Relative)); imgIsSuccess.ToolTip = "查询成功"; dgUserInfo.ItemsSource = q.ToList(); } var x = from y in context.UserDetails where y.UserName == userName.Text select new { 姓名 = y.Name, 账号 = y.UserName, 路线 = y.LineNumber, 起始站 = y.StartStation, 终点站 = y.EndStation, 票数 = y.TicketsNum, 时间 = y.Time, 状态 = y.TicketsState, 消费金额 = y.Money }; if (x.Count() > 0) { dgUserDetail.Visibility = System.Windows.Visibility.Visible; dgUserDetail.ItemsSource = x.ToList(); } } }
private void in_MouseDown(object sender, MouseButtonEventArgs e) { if (isUser) { bool isOk = false; using (AppDbEntities context = new AppDbEntities()) { var q = from t in context.UserDetails where t.UserName == tbUserName.Text && t.TicketsState == "未使用" select t; foreach (var v in q) { v.TicketsState = "进站"; isOk = true; } if (isOk) { isIn = true; //数据显示 tictetsState(tbUserName.Text); context.SaveChanges(); //成功图标显示 imgIsSuccess.Source = new BitmapImage(new Uri("/images/成功.png", UriKind.Relative)); imgIsSuccess.ToolTip = "进站成功"; } else { imgIsSuccess.Source = new BitmapImage(new Uri("/images/失败.png", UriKind.Relative)); imgIsSuccess.ToolTip = "未购票或已进站"; } } } else { imgIsSuccess.Source = new BitmapImage(new Uri("/images/失败.png", UriKind.Relative)); imgIsSuccess.ToolTip = "不存在此用户"; } //输入框清空 tbUserName.Text = ""; imgIsSuccess.Visibility = System.Windows.Visibility.Visible; }
/// <summary> /// 票的状态 /// </summary> /// <param name="userName"></param> /// <returns></returns> private bool tictetsState(string userName) { try { using (AppDbEntities context = new AppDbEntities()) { var q = from t in context.UserDetails where t.UserName == userName && t.TicketsState == "进站" select new { 姓名 = t.Name, 路线 = t.LineNumber, 起始站 = t.StartStation, 终点站 = t.EndStation, 票数 = t.TicketsNum, 时间 = t.Time, 状态 = isOut ? "出站" : t.TicketsState }; foreach (var v in q) { //显示当前站点 spCurrentStation.Visibility = System.Windows.Visibility.Visible; if (!isSkip) { lbCurrentStation.Content = getCurrentStation(userName); }//显示票的信息 dgUser.Visibility = System.Windows.Visibility.Visible; dgUser.ItemsSource = q.ToList(); return(true); } } } catch (Exception ee) { return(false); } return(false); }
/// <summary> /// 开通账户 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void openImmediate_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) { sex_nan.Focus(); try { string user_name = userName.Text; string user_passwrod = MD5.generateMD5(userPassword.Password); string user_realName = realName.Text.Replace(" ", ""); string user_sex = ""; if (sex_nan.IsChecked == true) { user_sex = "男"; } else if (sex_nv.IsChecked == true) { user_sex = "女"; } // DateTime user_birthday = DateTime.Parse(birthday.Text); string user_birthday = birthday.Text; string user_idCard = idCard.Text; string user_address = address.Text.Replace(" ", ""); string user_phone = phoneNumber.Text; decimal user_money = 0; decimal.TryParse(money.Text, out user_money); UserInfoes user = new UserInfoes() { UserName = user_name, Password = user_passwrod, Name = user_realName, Sex = user_sex, Birthday = user_birthday, OpenTime = DateTime.Now, IdCard = user_idCard, Address = user_address, PhoneNumber = user_phone, MoneySum = user_money }; if (infoIsOk(user)) { using (AppDbEntities context = new AppDbEntities()) { try { context.UserInfoes.Add(user); if (CheckUser.rechargeToCo(user.MoneySum)) { context.SaveChanges(); MessageBox.Show("开户成功"); setStateNormal(); } } catch (Exception ex) { MessageBox.Show(ex.Message); } } } } catch (Exception ee) { MessageBox.Show("开户失败:" + ee.Message); } }
/// <summary> /// 获取当前站点 /// </summary> /// <param name="currentNum"></param> /// <param name="strLineNum"></param> /// <returns></returns> public string getCurrentStation(string tmpUserName) { //坐过站可能性 int tmpNum = 0; string tmpLineStr = ""; using (AppDbEntities context = new AppDbEntities()) { var q = from t in context.UserDetails where t.UserName == tmpUserName && t.TicketsState == "进站" select t; foreach (var v in q) { startNum = v.StartTag; endNum = v.EndTag; if (startNum > endNum && endNum > 5) { //设置 tmpNum = endNum - 2; } else if (endNum > startNum && endNum <= 12) { tmpNum = 8; } //随机一个当前站点标识 if (startNum < endNum) { currentNum = 1 + startNum + r.Next(endNum - startNum + tmpNum); //超过的站数 outNum = currentNum > endNum ? currentNum - endNum : 0; } else { currentNum = 1 + endNum + r.Next(startNum - endNum) - tmpNum; outNum = currentNum < endNum ? endNum - currentNum : 0; } tmpLineStr = v.LineNumber; } } string currentStation = ""; //设置当前站点 switch (tmpLineStr) { case "1号线": currentStation = mainW.line1[currentNum]; break; case "2号线": currentStation = mainW.line2[currentNum]; break; case "3号线": currentStation = mainW.line3[currentNum]; break; case "4号线": currentStation = mainW.line4[currentNum]; break; case "5号线": currentStation = mainW.line5[currentNum]; break; case "6号线": currentStation = mainW.line6[currentNum]; break; } return(currentStation); }
/// <summary> /// 出站按钮 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void out_MouseDown(object sender, MouseButtonEventArgs e) { isSkip = true; outMoney = 0; if (isUser) { if (!isOut) { if (isOut) { } bool isOk = false; //坐过站 if (outNum > 0) { //超过金额计算 outMoney = 1 + (outNum - 1) / 6; using (AppDbEntities context = new AppDbEntities()) { var q1 = from f in context.UserDetails where f.UserName == tbUserName.Text && f.TicketsState == "进站" select f; foreach (var v1 in q1) { outMoney *= v1.TicketsNum; } var q2 = from t in context.UserInfoes where t.UserName == tbUserName.Text select t; foreach (var v2 in q2) { if (v2.MoneySum >= outMoney) { v2.MoneySum -= outMoney; leftMoney = (int)v2.MoneySum; isMoney = true; isOk = true; isYanshi = false; } else { isYanshi = true; isMoney = true; isOk = true; //数据显示 tictetsState(tbUserName.Text); imgIsSuccess.Source = new BitmapImage(new Uri("/images/警告.png", UriKind.Relative)); imgIsSuccess.ToolTip = "账户余额不足"; } } //账户余额足够支付 if (isMoney && !isYanshi) { payState(); if (isOk) { isOut = true; //数据显示 tictetsState(tbUserName.Text); //存储至数据库 context.SaveChanges(); //成功图标显示 imgIsSuccess.Source = new BitmapImage(new Uri("/images/成功.png", UriKind.Relative)); imgIsSuccess.ToolTip = "出站成功"; } else { imgIsSuccess.Source = new BitmapImage(new Uri("/images/失败.png", UriKind.Relative)); imgIsSuccess.ToolTip = "未进站或已出站"; } } //账户余额不足够支付 else { unPayState(); } } } //未超坐站或已经支付过超坐的钱 if (outNum == 0 || isMoney) { using (AppDbEntities context = new AppDbEntities()) { var q = from t in context.UserDetails where t.UserName == tbUserName.Text && t.TicketsState == "进站" select t; foreach (var v in q) { v.TicketsState = "出站"; isOk = true; } if (isOk) { isOut = true; //数据显示 tictetsState(tbUserName.Text); context.SaveChanges(); //成功图标显示 imgIsSuccess.Source = new BitmapImage(new Uri("/images/成功.png", UriKind.Relative)); imgIsSuccess.ToolTip = "出站成功"; } else { imgIsSuccess.Source = new BitmapImage(new Uri("/images/失败.png", UriKind.Relative)); imgIsSuccess.ToolTip = "未购票或已出站"; } } } } else { imgIsSuccess.Source = new BitmapImage(new Uri("/images/失败.png", UriKind.Relative)); imgIsSuccess.ToolTip = "未购票或已出站"; } } else { imgIsSuccess.Source = new BitmapImage(new Uri("/images/失败.png", UriKind.Relative)); imgIsSuccess.ToolTip = "不存在此用户"; } if (isOut && !isMoney) { //输入框清空 tbUserName.Text = ""; } imgIsSuccess.Visibility = System.Windows.Visibility.Visible; }