Beispiel #1
0
        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 ?? "" }));
        }
Beispiel #2
0
        //[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)));
        }
Beispiel #3
0
        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
                }));
            }
        }