Exemplo n.º 1
0
        public ActionResult MakeDeal(string TreasureSponsorID, string TreasureRecipientID)
        {
            //参数为空,报错
            if (string.IsNullOrEmpty(TreasureSponsorID) || string.IsNullOrEmpty(TreasureRecipientID))
            {
                return(View("Error", "出错"));
            }

            //首先要先验证该订单是不是出现过
            using (var db = new LogDealDataContext())
            {
                //获取与当前交易相同的记录
                var deallogs = db.LogDeal.Where(d => d.TreasureSponsorID == TreasureSponsorID && d.TreasureRecipientID == TreasureRecipientID);
                //遍历记录
                foreach (var dlog in deallogs)
                {
                    //当记录中出现以下哞种情况(即订单未完成),说明当前交易订单还在处理,这不允许创建订单,返回Error页面
                    if (dlog.DealStatus == "待确认" || dlog.DealStatus == "接受" || dlog.DealStatus == "交易中")
                    {
                        return(View("Error", "订单已存在,请勿重复申请!"));
                    }
                }
            }

            //当前登录用户UID
            string CurId = CurrentUser.Id;

            //这里验证当前发起人的物品是当前用户的,并且验证接收人的物品不是当前用户的
            var treaS = repository.Treasures
                        .Where(t => t.TreasureUID == Guid.Parse(TreasureSponsorID)).FirstOrDefault();
            var treaR = repository.Treasures
                        .Where(t => t.TreasureUID == Guid.Parse(TreasureRecipientID)).FirstOrDefault();

            if (treaR != null & treaS != null)
            {
                //确保发起物品是登录用户的,接受物品不是当前用户的
                if (treaS.HolderID == CurId && treaR.HolderID != CurId)
                {
                    //发起人id-当前登录人
                    string TraderSponsorID = CurId;
                    //接收人id-从物品获取
                    string TraderRecipientID = repository.Treasures
                                               .Where(t => t.TreasureUID == Guid.Parse(TreasureRecipientID))
                                               .FirstOrDefault().HolderID;
                    DealLogCreate dealLog = new DealLogCreate();

                    #region 生成视图模型
                    dealLog.DealInTreasure  = treaR;
                    dealLog.DealOutTreasure = treaS;
                    dealLog.QQ       = (string.IsNullOrEmpty(CurrentUser.OICQ)) ? "TA没有完善该信息" : CurrentUser.OICQ;
                    dealLog.WeChat   = (string.IsNullOrEmpty(CurrentUser.WeChat)) ? "TA没有完善该信息" : CurrentUser.WeChat;
                    dealLog.Email    = CurrentUser.Email;
                    dealLog.PhoneNum = CurrentUser.PhoneNumber;
                    #endregion

                    return(View(dealLog));
                }
            }
            return(View("Error"));
        }
Exemplo n.º 2
0
 public ActionResult EditRemarks(DealLogCreate dealLogCreate)
 {
     using (var db = new LogDealDataContext())
     {
         //修改备注信息
         var log = db.LogDeal.Where(d => d.DLogUID == Guid.Parse(dealLogCreate.DealLogID)).FirstOrDefault();
         if (log != null)
         {
             log.RemarkSToR = dealLogCreate.Remark;
         }
         db.SubmitChanges();
     }
     return(RedirectToAction("InitiateDealLog", "Account"));
 }
Exemplo n.º 3
0
        public ActionResult MakeDeal(DealLogCreate dealLogCreate)
        {
            //验证不为空
            if (string.IsNullOrEmpty(dealLogCreate.DealInTreasure.TreasureUID.ToString()) || string.IsNullOrEmpty(dealLogCreate.DealOutTreasure.TreasureUID.ToString()))
            {
                return(View("Error"));
            }
            else
            {
                Guid guid = Guid.NewGuid();
                //插入数据库
                using (var db = new LogDealDataContext())
                {
                    LogDeal logDeal = new LogDeal
                    {
                        DealBeginTime = DateTime.Now,
                        DealStatus    = "待确认",
                        DLogUID       = guid,
                        //备注-发起人对接收人
                        RemarkSToR = dealLogCreate.Remark,
                        //交易接收人ID
                        TraderRecipientID = dealLogCreate.DealInTreasure.HolderID,
                        //交易发起人ID
                        TraderSponsorID = dealLogCreate.DealOutTreasure.HolderID,
                        //交易给出物品ID
                        TreasureSponsorID = dealLogCreate.DealOutTreasure.TreasureUID.ToString(),
                        //交易接受物品ID
                        TreasureRecipientID = dealLogCreate.DealInTreasure.TreasureUID.ToString()
                    };
                    try
                    {
                        db.LogDeal.InsertOnSubmit(logDeal);
                        //保存操作
                        db.SubmitChanges();

                        //更新当前物品交易记录
                        var treasure = repository.Treasures.Where(t => t.TreasureUID == dealLogCreate.DealOutTreasure.TreasureUID).FirstOrDefault();
                        treasure.DLogUID = guid.ToString();
                        repository.SaveTreasure(treasure);
                    }
                    catch (Exception ex)
                    {
                        return(View("Error", ex.Message));
                    }
                }
                return(RedirectToAction("InitiateDealLog", "Account"));
            }
        }
Exemplo n.º 4
0
        public ActionResult DisagreeDeal(DealLogCreate dealLogCreate)
        {
            //更新物品信息
            //发起人的物品-因为发起人的物品在发起申请时就会记录订单号,所以拒绝后清空订单号,以便可以进行其他交易
            //接收人的物品-接收人在接受申请时,物品不会被记录订单号,即原来就可以自由交易,只有在接受交易或者自己发起交易后才会记录订单号
            var treaS = repository.Treasures.Where(t => t.TreasureUID == dealLogCreate.DealInTreasure.TreasureUID).FirstOrDefault();

            treaS.DLogUID = null;
            repository.SaveTreasure(treaS);

            //更新本次订单的记录
            using (var db = new LogDealDataContext())
            {
                var log = db.LogDeal.Where(d => d.DLogUID == Guid.Parse(dealLogCreate.DealLogID)).FirstOrDefault();
                log.RemarkRToS  = dealLogCreate.Remark;
                log.DealStatus  = "拒绝";
                log.DealEndTime = DateTime.Now;
                db.SubmitChanges();
            }

            return(RedirectToAction("AllDealLog", "Account"));
        }