public async Task <IActionResult> Update([FromBody] ProviderUserUpdateModel model)
        {
            if (!ModelState.IsValid)
            {
                return(BadModelResponse());
            }

            return(Ok(await _providerUserManager.UpdateUserRoles(model)));
        }
        /// <summary>
        /// Update provider user role
        /// </summary>
        /// <param name="model">Provider user update model</param>
        /// <returns>Ok</returns>
        public async Task <ApiOkResult> UpdateUserRoles(ProviderUserUpdateModel model)
        {
            var currentUser = await GetCurrentUser();

            if (!await _providerRepository.ExistsWithOwner(model.ProviderId, currentUser.Id))
            {
                throw new AccessDeniedException(model.ProviderId, typeof(Provider));
            }

            if (model.Roles == null || !model.Roles.Any())
            {
                throw new ModelDamagedException("Roles are required");
            }

            model.Roles = model.Roles.Select(x => x.ToUpper()).ToList();

            var pShort = await _providerRepository.GetShortById(model.ProviderId);

            var roles = await _providerRepository.GetRolesById(model.ProviderId);

            var rolesToUse = roles.Where(x => model.Roles.Contains(x.Name)).ToList();

            var targetUser = await _appUserRepository.FindByEmailAsync(model.UserId, new System.Threading.CancellationToken());

            if (targetUser == null)
            {
                throw new EntityNotFoundException(model.UserId, typeof(AppUser));
            }

            if (!(targetUser.ConnectedProviders?.Any(x => x.ProviderId == model.ProviderId) ?? false))
            {
                throw new EntityNotFoundException(model.ProviderId, typeof(Provider));
            }


            await _appUserRepository.UpdateProviderRoles(targetUser.Id, model.ProviderId, rolesToUse);

            return(new ApiOkResult());
        }