Esempio n. 1
0
        public async Task <IHttpActionResult> ManageUsersInRole(UsersInRoleDto usersInRoleDto)
        {
            var role = await NdRoleManager.FindByIdAsync(usersInRoleDto.Id);

            if (role == null)
            {
                ModelState.AddModelError("", "Role does not exist");
                return(BadRequest(ModelState));
            }

            foreach (string user in usersInRoleDto.EnrolledUsers)
            {
                var ndUser = await NdUserManager.FindByIdAsync(user);

                if (ndUser == null)
                {
                    ModelState.AddModelError("", string.Format("User: {0} does not exists", user));
                    continue;
                }

                if (!NdUserManager.IsInRole(user, role.Name))
                {
                    IdentityResult result = await NdUserManager.AddToRoleAsync(user, role.Name);

                    if (!result.Succeeded)
                    {
                        ModelState.AddModelError("", string.Format("User: {0} could not be added to role", user));
                    }
                }
            }

            foreach (string user in usersInRoleDto.RemovedUsers)
            {
                var ndUser = await NdUserManager.FindByIdAsync(user);

                if (ndUser == null)
                {
                    ModelState.AddModelError("", string.Format("User: {0} does not exists", user));
                    continue;
                }

                IdentityResult result = await NdUserManager.RemoveFromRoleAsync(user, role.Name);

                if (!result.Succeeded)
                {
                    ModelState.AddModelError("", string.Format("User: {0} could not be removed from role", user));
                }
            }

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            return(Ok());
        }
        public async Task <IHttpActionResult> GetTherapistsByEmail([FromBody] string email)
        {
            _logger.Debug(string.Format("Begin. Email: [{0}]", email));
            var therapistRole = await NdRoleManager.FindByNameAsync(Role.Therapist.ToString());

            return(Ok(NdUserManager.Users
                      .Where(x => x.Roles.Any(y => y.RoleId == therapistRole.Id) && x.Email.Contains(email))
                      .OrderBy(x => x.FirstName).ThenBy(x => x.LastName)
                      .ToList().Select(x => _factory.CreateTherapist(x))));
        }
        public async Task <IHttpActionResult> GetTherapists()
        {
            _logger.Debug("Begin");
            var therapistRole = await NdRoleManager.FindByNameAsync(Role.Therapist.ToString());

            return(Ok(NdUserManager.Users
                      .Where(x => x.Roles.Any(y => y.RoleId == therapistRole.Id))
                      .OrderBy(x => x.FirstName).ThenBy(x => x.LastName)
                      .ToList().Select(x => _factory.CreateTherapist(x))));
        }
Esempio n. 4
0
        public async Task <IHttpActionResult> GetRole(string Id)
        {
            var role = await NdRoleManager.FindByIdAsync(Id);

            if (role != null)
            {
                return(Ok(_factory.Create(role)));
            }

            return(NotFound());
        }
        public async Task <IHttpActionResult> GetTherapistInfo(string id)
        {
            _logger.Debug(string.Format("Begin. Id: [{0}]", id));
            var user = await NdUserManager.FindByIdAsync(id);

            var therapistRole = await NdRoleManager.FindByNameAsync(Role.Therapist.ToString());

            if (user != null && user.Roles.Any(x => x.RoleId == therapistRole.Id))
            {
                _logger.Debug(string.Format("User found. Id: [{0}]", id));
                return(Ok(_factory.CreateUserInfo(user)));
            }

            _logger.Debug(string.Format("Therapist was not found [id: {0}]", id));
            return(NotFound());
        }
Esempio n. 6
0
        public async Task <IHttpActionResult> DeleteRole(string Id)
        {
            var role = await NdRoleManager.FindByIdAsync(Id);

            if (role != null)
            {
                IdentityResult result = await NdRoleManager.DeleteAsync(role);

                if (!result.Succeeded)
                {
                    return(GetErrorResult(result));
                }

                return(Ok());
            }

            return(NotFound());
        }
Esempio n. 7
0
        public async Task <IHttpActionResult> Create(CreateRoleDto createRoleDto)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var role = new IdentityRole {
                Name = createRoleDto.Name
            };
            var result = await NdRoleManager.CreateAsync(role);

            if (!result.Succeeded)
            {
                return(GetErrorResult(result));
            }

            Uri locationHeader = new Uri(Url.Link("GetRoleById", new { id = role.Id }));

            return(Created(locationHeader, _factory.Create(role)));
        }