public async Task <OperationResult> UpdateSecurityGroup(SecurityGroupUpdateModel requestModel)
        {
            try
            {
                //using (var transaction = await _dbContext.Database.BeginTransactionAsync())
//                {
                var securityGroup = await _dbContext.SecurityGroups
                                    .Include(x => x.SecurityGroupUsers)
                                    .FirstOrDefaultAsync(x => x.Id == requestModel.Id);

                if (securityGroup == null)
                {
                    //transaction.Rollback();
                    return(new OperationResult(false,
                                               _localizationService.GetString("SecurityGroupNotFound")));
                }

                securityGroup.Name = requestModel.Name;
                // delete old
                var usersForDelete = _dbContext.SecurityGroupUsers
                                     .Where(x => x.SecurityGroupId == requestModel.Id &&
                                            !requestModel.UserIds.Contains(x.EformUserId));
                _dbContext.SecurityGroupUsers.RemoveRange(usersForDelete);
                // add new
                foreach (var userId in requestModel.UserIds)
                {
                    if (securityGroup.SecurityGroupUsers.All(x => x.EformUserId != userId))
                    {
                        securityGroup.SecurityGroupUsers.Add(new SecurityGroupUser()
                        {
                            EformUserId     = userId,
                            SecurityGroupId = requestModel.Id
                        });
                    }
                }

                _dbContext.SecurityGroups.Update(securityGroup);
                await _dbContext.SaveChangesAsync();

                // Update claims in store
                await _claimsService.UpdateAuthenticatedUsers(new List <int> {
                    requestModel.Id
                });

                //transaction.Commit();
//                }

                return(new OperationResult(true,
                                           _localizationService.GetString("SecurityGroupUpdatedSuccessfully")));
            }
            catch (Exception e)
            {
                _logger.LogError(e.Message);
                return(new OperationResult(false,
                                           _localizationService.GetString("ErrorWhileUpdatingSecurityGroup")));
            }
        }
 public async Task <OperationResult> UpdateSecurityGroup([FromBody] SecurityGroupUpdateModel model)
 {
     return(await _securityGroupService.UpdateSecurityGroup(model));
 }