示例#1
0
        public async Task <ActionResult> Register(IndexViewModel model)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    var user = new ApplicationUser
                    {
                        DisplayName = model.Register.DisplayName,
                        Email       = model.Register.Email,
                        UserName    = model.Register.Email,
                        CurrentExp  = 100, // set user exp default by 100
                    };
                    // Create user
                    var result = await m_userManager.CreateUserAsync(user, model.Register.Password);

                    // Check if successfull
                    if (result == IdentityResult.Success)
                    {
                        // Login into system
                        await SignInAsync(user, false);

                        //Add registed Successfully exp reward for user
                        await m_expService.AddExpForRegisterAsync(user.Id);

                        //Init currency amount
                        await m_currencyUserService.CreateAsync(EntityFactory.CreateCurrency_UserObject(user.Id, Constraint.CurrencySystem.DIAMOND));

                        await m_currencyUserService.CreateAsync(EntityFactory.CreateCurrency_UserObject(user.Id, Constraint.CurrencySystem.STARFISH));

                        await m_currencyUserService.CreateAsync(EntityFactory.CreateCurrency_UserObject(user.Id, Constraint.CurrencySystem.HEART));

                        // redirect to galaxy-gate
                        return(RedirectToAction("Index", "Home", new { area = "galaxygate" }));
                    }
                    else // If failure
                    {////[RequireHttps]
                        TempData["RegisterMessage"] = result.Errors.First();
                        return(RedirectToAction("Index", "Home"));
                    }
                }
                catch (Exception ex)
                {
                    ViewBag.ErrorMessage = ex.Message;
                    ViewBag.Exception    = ex.ToString();
                    return(View("Error"));
                }
            }
            // If we got this far, something failed, redisplay form
            return(RedirectToAction("Index", "Home"));
        }