public async Task <IActionResult> AddRoleAsync(AddUserRoleVM model)
        {
            string message = await _userService.AddRoleAsync(model);

            ResponseVM response = new ResponseVM
            {
                Status  = TaskHelper.GetResponceStatus(message),
                Message = message
            };

            return(Ok(response));
        }
예제 #2
0
        public async Task <string> AddRoleAsync(AddUserRoleVM model)
        {
            var user = await _userManager.FindByEmailAsync(model.Email);

            if (user == null)
            {
                return($"Error, No Accounts Registered with {model.Email}.");
            }
            if (await _userManager.CheckPasswordAsync(user, model.Password))
            {
                if (!await _userManager.IsInRoleAsync(user, model.Role))
                {
                    await _userManager.AddToRoleAsync(user, model.Role);

                    return($"Success, Added {model.Role} to user {model.Email}.");
                }
                return($"Error, Role {model.Role} not found.");
            }
            return($"Error, Incorrect Credentials for user {user.Email}.");
        }
        public async Task <List <AddUserRoleVM> > GetUsersWithoutRole(string roleid)
        {
            List <AddUserRoleVM> deleteAccountVMs = new List <AddUserRoleVM>();

            var users = _userManager.Users.ToList();
            var roles = _roleManager.Roles.ToList();

            var selectedRole = await _roleManager.FindByIdAsync(roleid);

            foreach (var user in users)
            {
                bool hasRole = false;

                foreach (var role in roles)
                {
                    if (await _userManager.IsInRoleAsync(user, role.Name))
                    {
                        hasRole = true;
                        break;
                    }
                }

                if (!hasRole && user.DesiredRole == selectedRole.Name)
                {
                    var account = new AddUserRoleVM
                    {
                        FullName   = user.FirstName + " " + user.LastName,
                        Name       = user.UserName,
                        IsSelected = false
                    };

                    deleteAccountVMs.Add(account);
                }
            }

            return(deleteAccountVMs);
        }
예제 #4
0
        public bool AddUserRole(AddUserRoleVM item, HttpRequestInfo info)
        {
            Locator.AdministrationBLLocator _locator = new Locator.AdministrationBLLocator();
            var sur = CRUD.Query(x => x.IdRoleRef == item.IdRole && x.IdSystemUserRef == item.IdUser).FirstOrDefault();
            SystemUserRoleLocation surl = null;
            if (item.IdCity != null && sur != null)
            {
                surl = _locator.SystemUserRoleLocationBL.CRUD.Query(x => x.IdSystemUserRoleRef == sur.IdSystemUserRole && x.IdCityRef == item.IdCity && x.IdTownRef == item.IdTown && x.IdVillageRef == item.IdVillage).FirstOrDefault();
            }
            using (TransactionScope scope = new TransactionScope())
            {
                try
                {

                    if (sur != null)
                    {
                        sur.OperationIsDeleted = 1;
                        sur.OperationIP = info.IpAddress;
                        sur.OperationIdUserRef = info.UserID;
                        sur.OperationDate = DateTime.Now;
                        CRUD.Update(sur, info);
                        Save();
                    }
                    else
                    {
                        sur = new SystemUserRole();
                        sur.IdRoleRef = item.IdRole;
                        sur.IdSystemUserRef = item.IdUser;
                        sur.OperationDate = DateTime.Now;
                        sur.OperationIdUserRef = info.UserID;
                        sur.OperationIP = info.IpAddress;
                        sur.OperationIsDeleted = 1;
                        CRUD.Insert(sur);
                        Save();
                    }
                    if (item.IdCity != null)
                    {
                        if (surl != null)
                        {
                            surl.OperationIsDeleted = 1;
                            surl.OperationIP = info.IpAddress;
                            surl.OperationIdUserRef = info.UserID;
                            surl.OperationDate = DateTime.Now;
                            _locator.SystemUserRoleLocationBL.CRUD.Update(surl, info);
                            _locator.SystemUserRoleLocationBL.Save();
                        }
                        else
                        {
                            surl = new SystemUserRoleLocation();
                            surl.IdCityRef = item.IdCity;
                            surl.IdSystemUserRef = item.IdUser;
                            surl.IdSystemUserRoleRef = sur.IdSystemUserRole;
                            surl.IdTownRef = item.IdTown;
                            surl.IdVillageRef = item.IdVillage;
                            surl.OperationDate = DateTime.Now;
                            surl.OperationIdUserRef = info.UserID;
                            surl.OperationIP = info.IpAddress;
                            surl.OperationIsDeleted = 1;
                            _locator.SystemUserRoleLocationBL.CRUD.Insert(surl);
                            _locator.SystemUserRoleLocationBL.Save();
                        }
                        scope.Complete();

                    }
                    else
                    {
                        scope.Complete();
                    }
                    return true;
                }
                catch (System.Exception ex)
                {
                    scope.Dispose();
                    return false;
                }

            }
        }