public async Task <ActionResult> NextAccountID() { var newID = await Task.Run <string>(() => { var cacheID = Session["NextMemberID"]; if (cacheID == null) { cacheID = IDGenerator.GetMemberIDGenerator(this.AppDbContext).GetNext(); Session.Add("NextMemberID", cacheID); } return(cacheID.ToString()); }); return(JsonMessage.JsonResult(new { NextAccountID = newID ?? "" })); }
//[AllowAnonymous] //[ValidateAntiForgeryToken] public async Task <ActionResult> Register(RegisterViewModel model) { if (ModelState.IsValid) { Member menberReference = null; string refID = model.ReferenceID; if (String.IsNullOrWhiteSpace(refID)) { var role = this.RoleManager.FindByName("Administrator").Users.FirstOrDefault(); var adminUser = (await this.UserManager.FindByIdAsync(role.UserId)); if (adminUser != null) { refID = adminUser.UserName; } } if (String.IsNullOrWhiteSpace(refID) == false) { menberReference = await(from m in this.AppDbContext.Members where m.MemberID.Equals(refID) select m ).FirstOrDefaultAsync(); } if (menberReference == null) { return(JsonMessage.BadRequestJsonResult("ReferenceID is not exist.")); } var member = new Member { MemberID = IDGenerator.GetMemberIDGenerator(this.AppDbContext).GetNext(), Reference = menberReference, Name = model.Name, IDCard = model.CardID, Address = model.Address, Level = model.Level }; var user = new ApplicationUser { Id = member.MemberID, UserName = member.MemberID, MemberInfo = member, PhoneNumber = model.Phone }; this.AppDbContext.Members.Add(member); var result = await this.UserManager.CreateAsync(user, ApplicationUser.IINT_PASSWORD); if (result.Succeeded) { // For more information on how to enable account confirmation and password reset please visit http://go.microsoft.com/fwlink/?LinkID=532713 // Send an email with this link //var code = await _userManager.GenerateEmailConfirmationTokenAsync(user); //var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: Context.Request.Scheme); //await _emailSender.SendEmailAsync(model.Email, "Confirm your account", // "Please confirm your account by clicking this link: <a href=\"" + callbackUrl + "\">link</a>"); //await _signInManager.SignInAsync(user, isPersistent: false); //return RedirectToAction(nameof(HomeController.Index), "Home"); Session.Remove("NextMemberID"); return(JsonMessage.JsonResult(member.MemberID)); } AddErrors(result); } return(JsonMessage.BadRequestJsonResult(ModelState.Values.SelectMany(x => x.Errors))); }
private async Task <ActionResult> GetUserInfo(ApplicationUser user) { try { if (user == null) { return(HttpNotFound()); } var role = (await this.UserManager.GetRolesAsync(user.UserName)).FirstOrDefault(); UserInfoViewModel menber = null; if (user.MemberInfo == null) { menber = await(from member in this.AppDbContext.Members where member.MemberID.Equals(user.UserName) select new UserInfoViewModel { ID = member.MemberID, Name = member.Name ?? "", Level = member.Level ?? "", Role = role ?? "", RegisterDate = member.RegisterDate.ToString("yyyy'-'MM'-'dd"), NeedToChangePassword = user.ChangedPassword == false }).FirstOrDefaultAsync(); } else { menber = new UserInfoViewModel { ID = user.MemberInfo.MemberID, Name = user.MemberInfo.Name ?? "", Level = user.MemberInfo.Level ?? "", Role = role ?? "", RegisterDate = user.MemberInfo.RegisterDate.ToString("yyyy'-'MM'-'dd"), NeedToChangePassword = user.ChangedPassword == false }; } if (menber == null) { return(HttpNotFound()); } MemberPointRule pointRule = await this.GetPointRule(); menber.SelfPointRate = pointRule.GetPointRate(menber.Level, LevelRelation.Self).ValueOfNumber; menber.Down1PointRate = pointRule.GetPointRate(menber.Level, LevelRelation.Son).ValueOfNumber; menber.Down2PointRate = pointRule.GetPointRate(menber.Level, LevelRelation.Grandson).ValueOfNumber; menber.Level = GetLevelDisplayName(menber.Level); return(JsonMessage.JsonResult(menber)); } catch (Exception e) { return(JsonMessage.BadRequestJsonResult(new { Message = e.Message })); } }