Ejemplo n.º 1
0
        protected override void OnMessage(MessageEventArgs e)
        {
            String data = e.Data;

            if (status == EvaluateStatus.Ready && digitRegex.IsMatch(data))
            {
                EvaluateTime = String2Int(data);
            }
            switch (data)
            {
            case "evaluate_request":
                //TODO: 弹出评估请求框
                MessageBoxResult result = MessageBox.Show("是否同意开始评估?", "请选择", MessageBoxButton.YesNo, MessageBoxImage.Question);
                if (result == MessageBoxResult.Yes)
                {
                    status = EvaluateStatus.Ready;
                    Send("evaluate_request_accepted");
                }
                else
                {
                    status = EvaluateStatus.Idle;
                    Send("evaluate_request_refused");
                }
                break;

            case "evaluate_start":
                if (status == EvaluateStatus.Ready)
                {
                    Send(String.Format("evaluate_started time:{0}", EvaluateTime));
                    status          = EvaluateStatus.Running;
                    isRunning       = true;
                    _timer.Interval = EvaluateTime * 1000;
                    _timer.Start();
                    //TODO: 开始评估操作
                    WriteFileThread.Run();        //Test
                }
                break;

            default:
                break;
            }
        }
Ejemplo n.º 2
0
        public void AfterChangeEvaluateStatus(Order order, EvaluateStatus oldEvaluateStatus)
        {
            using (var dbContext = new MallDbContext())
            {
                if (oldEvaluateStatus == EvaluateStatus.NotEvaluated && order.EvaluateStatus == EvaluateStatus.Evaluated)
                {
                    var query = _currencyService.GetList <OrderGoods>(x => x.OrderId == order.Id).GroupBy(x => x.GoodsId);
                    foreach (IGrouping <Guid, OrderGoods> group in query)
                    {
                        var num = 0;
                        foreach (OrderGoods orderGoods in group)
                        {
                            //判断商品是否已退款
                            var evaluates = _currencyService.Count <Evaluate.Models.Evaluate>(x => x.SourceId == orderGoods.Id);
                            if (evaluates > 0)
                            {
                                //商品评价数+1
                                num++;
                            }
                        }
                        if (num > 0)
                        {
                            var goods = dbContext.Goods.FirstOrDefault(x => x.Id == group.Key);

                            if (goods != null)
                            {
                                var entry = dbContext.Entry(goods);
                                entry.State = System.Data.Entity.EntityState.Unchanged;
                                entry.Property(o => o.EvaluateCount).IsModified = true;
                                goods.EvaluateCount = goods.EvaluateCount + num;
                            }
                        }
                    }
                    dbContext.SaveChanges();
                }
                else if (oldEvaluateStatus == EvaluateStatus.Evaluated && order.EvaluateStatus == EvaluateStatus.Replied)
                {
                }
            }
        }
Ejemplo n.º 3
0
 private void ResetStatus()
 {
     status = EvaluateStatus.Idle;
     _timer.Stop();
 }