Ejemplo n.º 1
0
        public async Task<ActionResult> Register(RegisterViewModel model, string returnUrl)
        {
            if (ModelState.IsValid)
            {
                var user = new ApplicationUser { UserName = model.UserName, Email = model.Email, TrafficRemaining = 0, RealName = model.RealName };
                var result = await UserManager.CreateAsync(user, model.Password);
                
                if (result.Succeeded)
                {
                    await UserManager.AddToRoleAsync(user.Id, "Users");
                    RechargeRequest request = new RechargeRequest()
                    {
                        CreationTime = DateTime.Now,
                        RequestID = Guid.NewGuid(),
                        User = user,
                        Amount = 512 * 1024 * 1024,
                    };
                    DbContext.RechargeRequests.Add(request);
                    await DbContext.SaveChangesAsync();
                    await SignInManager.SignInAsync(user, isPersistent:false, rememberBrowser:false);
                    
                    // 有关如何启用帐户确认和密码重置的详细信息,请访问 http://go.microsoft.com/fwlink/?LinkID=320771
                    // 发送包含此链接的电子邮件
                    // string code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id);
                    // var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme);
                    // await UserManager.SendEmailAsync(user.Id, "确认你的帐户", "请通过单击 <a href=\"" + callbackUrl + "\">這裏</a>来确认你的帐户");

                    return RedirectToLocal(returnUrl);
                }
                AddErrors(result);
            }

            // 如果我们进行到这一步时某个地方出错,则重新显示表单
            return View(model);
        }
Ejemplo n.º 2
0
 public ActionResult Recharge(RechargeViewModel model)
 {
     RechargeRequest request = new RechargeRequest()
     {
         CreationTime = DateTime.Now,
         RequestID = Guid.NewGuid(),
         User = DbContext.Users.Single(u => u.UserName == User.Identity.Name),
     };
     switch(model.ValueUnit)
     {
         case RechargeValueUnit.GB:
             request.Amount = model.RechargeValue * 1024 * 1024 * 1024;
             break;
         case RechargeValueUnit.MB:
             request.Amount = model.RechargeValue * 1024 * 1024;
             break;
     }
     DbContext.RechargeRequests.Add(request);
     DbContext.SaveChanges();
     return RedirectToAction("Index", new { Message = ManageMessageId.RechargeSuccess });
 }