Esempio n. 1
0
        /// <summary>
        /// This method adds a user to a role
        /// </summary>
        /// <param name="dvm"></param>
        /// <returns></returns>
        public bool AddUserToRole(AspNetUserRoleDVM dvm)
        {
            bool status = false;

            if (dvm != null)
            {
                AspNetUser a        = userManager.FindByIdAsync(dvm.UserId).Result;
                string     roleName = roleManager.FindByIdAsync(dvm.RoleId).Result.Name ?? "";
                try
                {
                    if (!string.IsNullOrEmpty(roleName))
                    {
                        ;
                        if (userManager.AddToRoleAsync(a, roleName).Result.Succeeded)
                        {
                            status = true;
                        }
                    }
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }
            return(status);
        }
Esempio n. 2
0
        /// <summary>
        /// This method adds a new user
        /// </summary>
        /// <param name="dvm"></param>
        /// <returns></returns>
        public async Task <bool> AddUserAndSignIn(AspNetUserDVM dvm, string role)
        {
            bool status = false;

            if (dvm != null && !string.IsNullOrEmpty(role))
            {
                AspNetUser a = mapper.Map <AspNetUser>(dvm);
                a.UserName = dvm.Email;
                try
                {
                    var        roleD = roleManager.FindByNameAsync(role).Result;
                    AspNetUser chk   = userManager.FindByEmailAsync(dvm.Email).Result;
                    if (roleD != null && chk != null)
                    {
                        var rolechk = userManager.GetRolesAsync(chk).Result;
                        if (rolechk.Count() > 0)
                        {
                            if (signInManager.PasswordSignInAsync(chk, dvm.PasswordHash, true, false).Result.Succeeded)
                            {
                                status = true;
                            }
                        }
                        else
                        {
                            var rdvm = new AspNetUserRoleDVM
                            {
                                RoleId = roleD.Id,
                                UserId = chk.Id
                            };
                            if (AddUserToRole(rdvm))
                            {
                                if (signInManager.PasswordSignInAsync(a, dvm.PasswordHash, true, false).Result.Succeeded)
                                {
                                    status = true;
                                }
                            }
                        }
                    }
                    else if (roleD != null && chk == null)
                    {
                        var d = userManager.CreateAsync(a, dvm.PasswordHash);
                        if (d.Result.Succeeded)
                        {
                            var luser = userManager.FindByEmailAsync(dvm.Email).Result;
                            var rdvm  = new AspNetUserRoleDVM
                            {
                                RoleId = roleD.Id,
                                UserId = luser.Id
                            };
                            if (AddUserToRole(rdvm))
                            {
                                if (signInManager.PasswordSignInAsync(a, dvm.PasswordHash, false, false).Result.Succeeded)
                                {
                                    status = true;
                                }
                            }
                        }
                    }
                    else if (roleD == null && chk == null)
                    {
                        var roleDVM = new AspNetRoleDVM
                        {
                            Name = role
                        };
                        if (await AddRole(roleDVM))
                        {
                            var d = userManager.CreateAsync(a, dvm.PasswordHash);
                            if (d.Result.Succeeded)
                            {
                                await userManager.AddToRoleAsync(a, role);

                                if (signInManager.PasswordSignInAsync(a, dvm.PasswordHash, true, false).Result.Succeeded)
                                {
                                    status = true;
                                }
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }
            return(status);
        }