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)); }