public virtual async Task <IdentityProviderDto> UpdateIdentityProvider(int accountId, int identityProviderId, UpdateIdentityProviderDto identityProviderDto)
        {
            var validationErrors = new List <ValidationResult>();

            Utils.ValidateDto(identityProviderDto, validationErrors);

            try
            {
                var identityProvider = await Utils.GetIdentityProviderAsync(_db, accountId, identityProviderId);

                if (!string.Equals(identityProvider.Name, identityProviderDto.Name))
                {
                    identityProvider.Name             = identityProviderDto.Name;
                    _db.Entry(identityProvider).State = EntityState.Modified;
                }

                await _db.SaveChangesAsync();

                return(_mapper.Map <IdentityProviderDto>(identityProvider));
            }
            catch (DbException e)
            {
                throw new PersistenceException($"An error occurred while reading an IdentityProvider ({nameof(accountId)} = {accountId},{nameof(identityProviderId)} = {identityProviderId}, {nameof(identityProviderDto)} = {JsonConvert.SerializeObject(identityProviderDto)})", e);
            }
        }
 //[AuthorizeRbac("accounts:read")]
 public async Task <IActionResult> UpdateIdentityProvider(int accountId, int identityProviderId, [FromBody] UpdateIdentityProviderDto identityProviderDto)
 {
     return(Ok(await _updateIdentityProvider.UpdateIdentityProvider(accountId, identityProviderId, identityProviderDto)));
 }