Exemplo n.º 1
0
 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);
 }
Exemplo n.º 2
0
 /// <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();
         }
     }
 }
Exemplo n.º 4
0
        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;
        }
Exemplo n.º 5
0
        /// <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);
        }
Exemplo n.º 6
0
 /// <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);
     }
 }
Exemplo n.º 7
0
        /// <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);
        }
Exemplo n.º 8
0
        /// <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;
        }