public IActionResult FinishPayment(PaymentMethodViewModel pmvm)
        {
            if (!ModelState.IsValid)
            {
                var cards = context.User_Cards.Where(c => c.UserId == pmvm.UserId).ToList();
                PaymentMethodViewModel newpmvm = new PaymentMethodViewModel
                {
                    UserId     = pmvm.UserId,
                    SellerId   = pmvm.SellerId,
                    ArticleId  = pmvm.ArticleId,
                    DateTicks  = pmvm.DateTicks,
                    Charge     = pmvm.Charge,
                    Cards      = cards,
                    CardNumber = pmvm.CardNumber,
                    NameOnCard = pmvm.NameOnCard,
                    OrderType  = pmvm.OrderType
                };
                return(RedirectToAction("GetPaymentMethod", newpmvm));
            }

            var nameOnCard = pmvm.NameOnCard;
            var cardNumber = pmvm.CardNumber;

            if (pmvm.NameOnCard == null || pmvm.CardNumber == null)
            {
                nameOnCard = context.User_Cards.Single(uc => uc.UserId == pmvm.UserId &&
                                                       uc.CardNumber == pmvm.SelectedCardNumber).NameOnCard;
                cardNumber = pmvm.SelectedCardNumber;
            }
            else
            {
                var user_card = new User_Card
                {
                    UserId     = pmvm.UserId,
                    CardNumber = cardNumber,
                    NameOnCard = nameOnCard
                };
                var cardInDb = context.User_Cards
                               .SingleOrDefault(uc => uc.UserId == user_card.UserId && uc.CardNumber == user_card.CardNumber);
                if (cardInDb == null)
                {
                    context.User_Cards.Add(user_card);
                    context.SaveChanges();
                }
            }

            //aqui es donde se deberia hacer las transacciones entre las cuentas del comprador y el o los vendedores
            return(RedirectToAction("CloseOrder", "Buy",
                                    new { userId = pmvm.UserId, articleId = pmvm.ArticleId, dateTicks = pmvm.DateTicks,
                                          orderType = pmvm.OrderType }));
        }
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            User_Card user_Card = db.User_Card.Find(id);

            if (user_Card == null)
            {
                return(HttpNotFound());
            }
            return(View(user_Card));
        }
 public bool InsertUserCard(User_Card record)
 {
     try
     {
         using (var eWalletTransactionUnitOfWork = new WalletTransactionUow(new WalletEntities()))
         {
             eWalletTransactionUnitOfWork.BeginTransaction().DoInsert(record).EndTransaction();
         }
         return(true);
     }
     catch (Exception ex)
     {
         var logWallet = new LogWallet();
         Task.Factory.StartNew(() => logWallet.Log(MethodBase.GetCurrentMethod(), record.User_ID, ex, ""));
         return(false);
     }
 }
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            User_Card user_Card = new User_Card();// db.User_Card.Where(x => x.UserLogin_ID == id);

            foreach (User_Card a in db.User_Card.Where(x => x.UserLogin_ID == id))
            {
                user_Card  = a;
                UserCardID = user_Card.UserCard_ID;
            }
            if (user_Card == null)
            {
                return(HttpNotFound());
            }

            return(View(user_Card));
        }
        /// <summary>
        /// Get AspNetUser by aspNetUserId
        /// </summary>
        /// <param name="aspNetUserId"></param>
        /// <returns></returns>
        public User_Card GetUserCardByUserAndId(string pUserID, string pId)
        {
            User_Card user_card = null;

            try
            {
                var transactionOptions = new System.Transactions.TransactionOptions();
                transactionOptions.IsolationLevel = System.Transactions.IsolationLevel.ReadUncommitted;
                using (var transactionScope = new System.Transactions.TransactionScope(System.Transactions.TransactionScopeOption.Required, transactionOptions))
                {
                    user_card = new UserCardQueryBuilder(new WalletEntities()).HasUserAndId(pUserID, pId).FirstOrDefault();
                }
                return(user_card);
            }
            catch (Exception ex)
            {
                var logWallet = new LogWallet();
                Task.Factory.StartNew(() => logWallet.Log(MethodBase.GetCurrentMethod(), pUserID + "|" + pId, ex, ""));
                return(user_card);
            }
        }
        public ActionResult User_CardEdit(FormCollection collection)
        {
            string   UserCard_Nickname = collection["UserCard_Nickname"].ToString();
            string   Sex                 = collection["Sex"].ToString();
            string   UserCard_Remark     = collection["UserCard_Remark"].ToString();
            string   UserCard_MobilPhone = collection["UserCard_MobilPhone"].ToString();
            int      userCard_ID         = int.Parse(collection["UserCard_ID"].Trim());
            DateTime UserCard_Birthday   = DateTime.Parse(collection["UserCard_Birthday"]);
            string   PathImgFile         = "";

            if (Request.Files.Count > 0)
            {
                DirectoryInfo directory = new DirectoryInfo(Directory.GetCurrentDirectory());
                string        ext       = Path.GetExtension(Request.Files[0].FileName);//directory.FullName;
                if (Request.Files[0].ContentType == "image/jpg" || Request.Files[0].ContentType == "image/png" || Request.Files[0].ContentType == "image/gif" || Request.Files[0].ContentType == "image/jpeg")
                {
                    Random ran      = new Random();
                    string fileName = DateTime.Now.ToString("yyyyMMddhhmmss") + ran.Next(100, 1000) + Guid.NewGuid().ToString() + ext;//给文件取名
                    string fileDir  = HttpContext.Server.MapPath("/Resource/Img");
                    fileDir = fileDir + "/" + fileName;
                    Request.Files[0].SaveAs(fileDir);
                    //PathImgFile = fileDir + "." + ext + "" + Request.Files[0].ContentType;
                    PathImgFile = "/Resource/Img/" + fileName;
                }
                else
                {
                    PathImgFile = "/Resource/Img/20180518030030100c8fc06cd-770e-49f1-b77b-cdc54d8a0d45.jpg";
                }
            }
            else
            {
                PathImgFile = "/Resource/Img/20180518030030100c8fc06cd-770e-49f1-b77b-cdc54d8a0d45.jpg";
            }

            using (var dbContextTransaction = db.Database.BeginTransaction())
            {
                try
                {
                    /*
                     * User_Card user_Card = new User_Card
                     * {
                     *  UserCard_ID = userCard_ID,
                     *  UserCard_ChatHeadImg = PathImgFile,
                     *  UserCard_Birthday = UserCard_Birthday,
                     *  //UserCard_GmLevel = 1,//普通用户
                     *  UserCard_MobilPhone = UserCard_MobilPhone,
                     *  UserCard_Nickname = UserCard_Nickname,
                     *  UserCard_Sex = Sex,
                     *  UserCard_Remark = UserCard_Remark
                     *
                     * };
                     * db.Entry(user_Card).State = EntityState.Modified;
                     */
                    User_Card user_Card = db.User_Card.Where(x => x.UserCard_ID == userCard_ID).FirstOrDefault <User_Card>();
                    user_Card.UserCard_Nickname    = UserCard_Nickname;
                    user_Card.UserCard_Birthday    = UserCard_Birthday;
                    user_Card.UserCard_ChatHeadImg = PathImgFile;
                    user_Card.UserCard_MobilPhone  = UserCard_MobilPhone;
                    user_Card.UserCard_Remark      = UserCard_Remark;
                    user_Card.UserCard_Sex         = Sex;
                    db.Entry(user_Card).State      = EntityState.Modified;
                    db.SaveChanges();
                    dbContextTransaction.Commit();
                    return(Content("<script>alert('修改成功');</script>"));
                }
                catch (DataException)
                {
                    dbContextTransaction.Rollback();
                    ModelState.AddModelError("", "无法保存更改。再试一次,如果问题仍然存在,请参见系统管理员。");
                    return(Content("<script>alert('修改失败');</script>"));
                }
            }

            //return Content(collection["UserCard_ID"]);
        }