예제 #1
0
        public IActionResult Exchange(ExchangeMD metaData)
        {
            try
            {
                var member = _context.Members.SingleOrDefault(x => x.Id == metaData.MemberId);

                if (member == null)
                {
                    throw new Exception($"無該會員資料");
                }

                if (member.Status != AccountStatusTypeEnum.Normal)
                {
                    throw new Exception($"該會員帳號狀態異常");
                }

                if (metaData.DealIntegration <= 0)
                {
                    throw new Exception($"提交金額錯誤");
                }

                member.Integration -= metaData.DealIntegration;

                _context.Entry(member).State = EntityState.Modified;
                _context.TransactionRecords.Add(new TransactionRecordEntity
                {
                    TransactionId = Guid.NewGuid().ToString(),
                    Type          = TransactionTypeEnum.OnSite_ChipExchange,
                    Integration   = metaData.DealIntegration,
                    MemberId      = metaData.MemberId,
                    OperatorId    = _context.Administrators.First().Id
                });

                if (_context.SaveChanges() <= 0)
                {
                    throw new Exception($"無法新增交易紀錄");
                }
            }
            catch (Exception ex)
            {
                ViewBag.ErrorMessage = $"兌換失敗,{ex.Message},請聯絡系統管理員";

                return(View(metaData));
            }

            return(RedirectToAction("Index", "Transaction"));
        }
예제 #2
0
        public IActionResult Exchange(int memberId)
        {
            var member = _context.Members.Single(x => x.Id == memberId);

            if (member == null)
            {
                ViewBag.ErrorMessage = $"查無會員,請聯絡系統管理員";

                return(PartialView("_TransactionError"));
            }

            var data = new ExchangeMD
            {
                MemberId        = member.Id,
                MemberName      = member.Name,
                Integration     = member.Integration,
                DealIntegration = 0
            };

            return(View(data));
        }