public async Task<ActionResult> PointExch(MemberPointInfoViewModel model) { if (ModelState.IsValid) { if (model.ExchAmount < 0) { return JsonMessage.BadRequestJsonResult("ExchAmount must be greater than 0."); } MemberPointInfoViewModel pointInfo = await GetMemberPointInfo(model.MemberID); if (pointInfo == null || pointInfo.UsablePoint < model.ExchAmount) { return JsonMessage.BadRequestJsonResult("ExchAmount is greater than UsablePoint."); } MemberPoint exchPoint = new MemberPoint(); exchPoint.ID = IDGenerator.GetMemberPointIDGenerator(AppDbContext).GetNext(); exchPoint.OwnerMemberID = model.MemberID ; exchPoint.Type = "PointExch"; exchPoint.OperationBy = this.AppDbContext.FindOrAttachToLocal((await this.GetCurrentUserAsync()).UserName); exchPoint.Quantity = -model.ExchAmount; exchPoint.CurrentTotalQuantity = pointInfo.PointTotal; this.AppDbContext.MemberPoint.Add(exchPoint); this.AppDbContext.SaveChanges(); MemberPointInfoViewModel newPointInfo = await GetMemberPointInfo(model.MemberID); newPointInfo.IDCard = model.IDCard; newPointInfo.MemberName = model.MemberName; return Json(newPointInfo, JsonRequestBehavior.AllowGet); } return JsonMessage.BadRequestJsonResult(ModelState.Values.SelectMany(x => x.Errors)); }
public async Task<ActionResult> PointExch(string id) { if (ModelState.IsValid) { var memberInfo = await (from m in AppDbContext.Members where m.MemberID.Equals(id, StringComparison.InvariantCultureIgnoreCase) select m) .FirstOrDefaultAsync(); if (memberInfo == null) { return HttpNotFound("MemberID is not Exist."); } MemberPointInfoViewModel pointInfo = await GetMemberPointInfo(memberInfo.MemberID); if (pointInfo == null) { pointInfo = new MemberPointInfoViewModel { MemberID = memberInfo.MemberID, PointTotal = 0, UsablePoint = 0, }; } pointInfo.IDCard = memberInfo.IDCard; pointInfo.MemberName = memberInfo.Name; return Json(pointInfo, JsonRequestBehavior.AllowGet); } return JsonMessage.BadRequestJsonResult(ModelState.Values.SelectMany(x => x.Errors)); }