示例#1
0
        public ActionResult Create(MemberVo input)
        {
            ViewBag.Title = "Add New User";

            if (this.ModelState.IsValid)
            {
                input.password = CurrentMember.HashWord(input.password);

                var item = memberManager.insert(input);

                if (input.memberRoleTypes != null)
                {
                    foreach (int roleId in input.memberRoleTypes)
                    {
                        var memberRoleLookupVo = new MemberRoleLookupVo();
                        memberRoleLookupVo.memberId         = input.memberId;
                        memberRoleLookupVo.memberRoleTypeId = roleId;
                        memberRoleLookupVo.isActive         = true;

                        memberRoleLookupManager.insert(memberRoleLookupVo);
                    }
                }
                return(RedirectToAction("Index"));
            }


            return(View(input));
        }
示例#2
0
        public MemberVo update(MemberVo input, int?memberId = null)
        {
            using (var db = new MainDb())
            {
                if (memberId == null)
                {
                    memberId = input.memberId;
                }

                var res = db.members.Include(i => i.contactInfo).FirstOrDefault(e => e.memberId == memberId);

                if (res == null)
                {
                    return(null);
                }

                input.created = res.created;

                if (!string.IsNullOrEmpty(input.passwordReset))
                {
                    input.password = CurrentMember.HashWord(input.passwordReset);
                }
                else
                {
                    input.password = res.password;
                }

                // input.createdBy = res.createdBy;
                db.Entry(res).CurrentValues.SetValues(input);


                db.SaveChanges();
                return(res);
            }
        }
示例#3
0
        public MemberVo insert(MemberVo input)
        {
            using (var db = new MainDb())
            {
                db.members.Add(input);
                db.SaveChanges();

                return(input);
            }
        }
示例#4
0
        public ActionResult Edit(int id, MemberVo input)
        {
            if (this.ModelState.IsValid)
            {
                var res = memberManager.update(input, id);
                return(RedirectToAction("Index"));
            }

            return(View(input));
        }
示例#5
0
 public ActionResult EditProfile(MemberVo input)
 {
     Edit(input);
     if (!this.ModelState.IsValid)
     {
         return(View("Edit", input));
     }
     CurrentMember.reload();
     return(View("Details", CurrentMember.member));
 }
示例#6
0
        public MemberVo updateLastLoginForMember(string usernameOrEmail, string hashedPassword)
        {
            MemberVo member = getByUsernameAndPassword(usernameOrEmail, hashedPassword);

            if (member == null)
            {
                return(null);
            }
            member.lastLogin = DateTime.Now;
            return(update(member));
        }
示例#7
0
        public ActionResult Create(MemberVo input)
        {
            if (this.ModelState.IsValid)
            {
                var item = memberManager.insert(input);
                return(RedirectToAction("Index"));
            }


            return(View(input));
        }
示例#8
0
        public static bool validateUser(string username, string password)
        {
            string   hashedPassword = HashWord(password);
            MemberVo user           = memberManager.getByUsernameAndPassword(username, hashedPassword);

            if (user == null)
            {
                return(false);
            }

            return(true);
        }
示例#9
0
        public ActionResult Edit(MemberVo input)
        {
            var      id            = CurrentMember.member.memberId;
            bool     foundTheMatch = false;
            MemberVo item          = memberManager.get(id);

            if (this.ModelState.IsValid)
            {
                if (item.memberRoleTypes != null)
                {
                    foreach (MemberRoleLookupVo roleLookupVo in item.memberRoleLookupses)
                    {
                        foundTheMatch = false;
                        foreach (int memberRoleId in input.memberRoleTypes)
                        {
                            if (roleLookupVo.memberRoleTypeId == memberRoleId)
                            {
                                input.memberRoleTypes.Remove(memberRoleId);
                                foundTheMatch = true;
                                break;
                            }
                        }
                        if (!foundTheMatch)
                        {
                            memberRoleLookupManager.delete(roleLookupVo.memberRoleId);
                        }
                    }
                }
                if (input.memberRoleTypes != null)
                {
                    foreach (int roleId in input.memberRoleTypes)
                    {
                        var memberRoleLookupVo = new MemberRoleLookupVo();
                        memberRoleLookupVo.memberId         = input.memberId;
                        memberRoleLookupVo.memberRoleTypeId = roleId;
                        memberRoleLookupVo.isActive         = true;

                        memberRoleLookupManager.insert(memberRoleLookupVo);
                    }
                }
                contactInfoManager.update(input.contactInfo, input.contactInfo.contactInfoId);
                var res = memberManager.update(input, id);
                return(RedirectToAction("Index"));
            }

            return(View(input));
        }
示例#10
0
        public ActionResult ForgotPassword(string userName)
        {
            //check user existance
            MemberVo member = memberManager.getByUsername(userName);

            if (member == null)
            {
                TempData["Message"] = "User Does not exist.";
            }
            else
            {
                //generate password token
                var token = Guid.NewGuid(); //  WebSecurity.GeneratePasswordResetToken(userName, 4320); // 72 hours
                // set password reset token to database
                member.passwordResetToken = token;
                memberManager.update(member);
                //create url with above token
                var resetLink = "<a href='" + Url.Action("ResetPassword", "Account", new { un = userName, rt = token }, "http") + "'>Reset Password</a>";
                //get user emailid
                var emailid = member.email;

                //send mail
                string subject = "Password Reset Token";
                string body    = "<b>Please find the Password Reset Token</b><br/>" + resetLink; //edit it
                try
                {
                    string adminEmailPsw  = ConfigHelper.getAppSetting("adminEmailPassCode");
                    string adminEmail     = ConfigHelper.getAppSetting("adminEmail");
                    string adminEmailSmtp = ConfigHelper.getAppSetting("adminEmailSmtp");
                    //    emailSender.setCredentials(adminEmail, adminEmailPsw, adminEmailSmtp);
                    // emailSender.send("SilList System Administrator", emailid, subject, body/*, "*****@*****.**"*/);
                    TempData["Message"] = "Mail Sent.";
                }
                catch (Exception ex)
                {
                    TempData["Message"] = "Error occured while sending email." + ex.Message;
                }
                //only for testing
                TempData["Message"] += "<hr> <hr> ------------------------------------------------------------ ";
                TempData["Message"] += resetLink;
            }

            return(View());
        }
示例#11
0
        public ActionResult Login(MemberVo input)
        {
            if (this.ModelState.IsValid)
            {
                if (CurrentMember.validateUser(input.username, input.password))
                {
                    FormsAuthentication.SetAuthCookie(input.username, true);
                    return(RedirectToAction("Index", "Home"));
                    //FormsAuthentication.RedirectFromLoginPage(input.username, true);
                }
                else
                {
                    ViewBag.uname = input.username;
                    this.ModelState.AddModelError("", "Please check Username and Password, and try again.");
                }
            }

            return(View());
        }
示例#12
0
        public MemberVo getByUsernameAndPassword(string username, string hashedPassword)
        {
            using (var db = new MainDb())
            {
                MemberVo mem = null;

                try
                {
                    mem = db.members
                          .Include(a => a.memberRoleLookupses.Select(c => c.memberRoleType))
                          .FirstOrDefault(p => (p.username == username || p.email == username) && p.password == hashedPassword);
                }
                catch (Exception ex)
                {
                    mem = null;
                }

                return(mem);
            }
        }
示例#13
0
        public ActionResult ResetPassword(string un, Guid rt)
        {
            //TODO: Check the un and rt matching and then perform following
            //get member of received username
            MemberVo member = memberManager.getByUsername(un);

            if (member.passwordResetToken != null && member.passwordResetToken == rt)
            {
                //generate random password
                string newpassword = memberManager.GenerateRandomPassword(6);
                //reset password
                member.password           = CurrentMember.HashWord(newpassword);
                member.passwordResetToken = null;
                memberManager.update(member);

                //get user emailid to send password
                string emailid = member.email;

                //send email
                string subject = "New Password";
                string body    = "<b>Please find the New Password</b><br/>" + newpassword; //edit it
                try
                {
                    emailSender.send("SilList System Administrator", emailid, subject, body);
                    TempData["Message"] = "Mail Sent.";
                }
                catch (Exception ex)
                {
                    TempData["Message"] = "Error occured while sending email." + ex.Message;
                }

                //display message
                TempData["Message"] = "Success! Check email we sent. Your New Password Is " + newpassword;
            }
            else
            {
                TempData["Message"] = "Username and token not maching.";
            }

            return(View());
        }
示例#14
0
        public void insertTest()
        {
            MemberVo mem = new MemberVo();

            mem.username = "******";
            mem.password = "******";
            mem.isActive = false;

            mem.firstName = "TestUserFirstName";
            mem.lastName  = "TestUserLastName";


            mem.email             = "TestUserEmail";
            mem.isEmailConfirmed  = false;
            mem.isEmailSubscribed = false;
            mem.lastLogin         = DateTime.Now;

            var res = memberManager.insert(mem);

            Assert.IsTrue(res != null); // res.createdBy != null && res.createdBy != 0);
        }
示例#15
0
        public ActionResult Login()
        {
            var login = new MemberVo();

            return(View(login));
        }
示例#16
0
        public ActionResult Register(RegisterVm input)
        {
            if (this.ModelState.IsValid)
            {
                MemberVo mem_check = memberManager.getByUsername(input.username);
                if (mem_check != null)
                {
                    ViewBag.NameExistMsg = "User with this name already exist. Please choose another name.";
                    return(View(input));
                }


                MemberVo mem = new MemberVo();

                mem.username = input.username;
                mem.password = input.password;
                mem.isActive = false;

                mem.firstName = input.firstName;
                mem.lastName  = input.lastName;

                mem.email             = input.email;
                mem.isEmailConfirmed  = false;
                mem.isEmailSubscribed = false;
                mem.lastLogin         = DateTime.Now;

                // Add USER role type to the newly registered member
                if (mem.memberRoleTypes == null)
                {
                    mem.memberRoleTypes = new List <int>();
                }
                int?userRoleTypeId = memberRoleTypeManager.get_USER_RoleTypeId();
                if (userRoleTypeId != null)
                {
                    if (!mem.memberRoleTypes.Contains(userRoleTypeId.Value))
                    {
                        mem.memberRoleTypes.Add(userRoleTypeId.Value);
                    }
                }

                memberManager.insert(mem);

                // Init the Lookup
                if (mem.memberRoleTypes != null)
                {
                    foreach (int roleId in mem.memberRoleTypes)
                    {
                        var memberRoleLookupVo = new MemberRoleLookupVo();
                        memberRoleLookupVo.memberId         = mem.memberId;
                        memberRoleLookupVo.memberRoleTypeId = roleId;
                        memberRoleLookupVo.isActive         = true;

                        memberRoleLookupManager.insert(memberRoleLookupVo);
                    }
                }

                return(RedirectToAction("ConfirmEmail", "Member"));
            }

            return(View());
        }
示例#17
0
        public ActionResult Create()
        {
            var vo = new MemberVo();

            return(View(vo));
        }