public ActionResult ClaimPrizeStep2(AddressValidation av,int? selectedAddr) { if (selectedAddr.HasValue) { var dr = _uow.DrawingsService.Get(o => o.Id == av.DrawId.Value); if (dr == null) throw new IchariException(string.Format("未找到相应的抽奖记录:drawId={0}",av.DrawId)); dr.AddressId = selectedAddr.Value; _uow.Commit(); return RedirectToAction("DrawDetail", "Account", new { id = dr.Id }); } if (ModelState.IsValid) { var usr = base.CurrentUser; if (_uow.UserInfoService.Get(o => o.Id == usr.Id && o.UserName == usr.UserName && o.Password == usr.Password) != null) { Address addr = new Address(); addr.UserId = usr.Id; addr.Address1 = av.Street; addr.Area = av.Area; addr.City = av.City; addr.Email = av.Email; addr.Mobile = av.Cell; addr.PostCode = av.Postal; addr.Province = av.Province; addr.Tel = av.Tel; addr.TrueName = av.Name; _uow.AddressService.Add(addr); _uow.Commit(); long drId = av.DrawId ?? 0; //long.Parse((string)Session[SessionKey.DrawId]); Drawings dr = _uow.DrawingsService.Get(o => o.Id == drId); dr.AddressId = addr.Id; dr.IsHandled = true; _uow.Commit(); return RedirectToAction("DrawDetail", "Account", new { id = dr.Id }); } } return View(); }
public ActionResult ClaimPrizeStep2(int? drawId) { drawId = drawId ?? (int)Session[SessionKey.DrawId]; var usr = base.CurrentUser; //check draw id var draw = _uow.DrawingsService.Get(t => t.Id == drawId.Value); if (draw == null) throw new IchariException(string.Format("未找到相应的抽奖记录:drawId={0}",drawId)); if(draw.UserId != usr.Id) throw new IchariException(string.Format("抽奖记录异常:drawId={0}",drawId)); if(draw.IsHandled != null && draw.IsHandled.Value) throw new IchariException(string.Format("已经登记领奖信息:drawId={0}",drawId)); //对应的奖品 var prize = _uow.PrizeService.Get(t => t.Id == draw.PrizeId.Value); ViewData["prize"] = prize; if (prize.IsVirtual) { if (Session[SessionKey.DeliveryFreeCard] == null) { var fc = _uow.FreeCardService.Delivery(FreeCardType.UnionCard); draw.CardId = fc.Id; ViewData["freeCard"] = fc; Session[SessionKey.DeliveryFreeCard] = fc; _uow.Commit(); } else { ViewData["freeCard"] = Session[SessionKey.DeliveryFreeCard] as FreeCard; } return View(); } if (_uow.UserInfoService.Get(o => o.Id == usr.Id && o.Password == usr.Password) != null) { var addrList = _uow.AddressService.GetQueryList(t => t.UserId == usr.Id).ToList(); ViewData["addrList"] = addrList; Address addr = addrList.FirstOrDefault(t => t.IsDefault == true); if (addr != null) { AddressValidation av = new AddressValidation(); av.Area = addr.Area; av.Cell = addr.Mobile; av.City = addr.City; av.DefaultAddr = true; av.Email = addr.Email; av.Name = addr.TrueName; av.Postal = addr.PostCode; av.Province = addr.Province; av.Street = addr.Address1; av.Tel = addr.Tel; av.DrawId = drawId ?? 0; return View(av); } return View(); } return RedirectToAction("Login", "Account", new { returnUrl = "/Account/MyDrawings" }); }