private void chklPermisosOpciones_SelectedValueChanged(object sender, EventArgs e) { OperationResult objOperationResult = new OperationResult(); var data = _protocolBL.GetProtocolSystemUserByExternalUserId(_systemUserId); var groupByProtocol = data.GroupBy(g => g.v_ProtocolId).Select(s => s.First()).ToList(); var value = chklPermisosOpciones.GetItemChecked(chklPermisosOpciones.SelectedIndex); var applicationHierarchyId = (KeyValueDTO)chklPermisosOpciones.SelectedItem; if (value) { var list = new List <protocolsystemuserDto>(); foreach (var protocol in groupByProtocol) { var oProtocolsystemuserDto = new protocolsystemuserDto(); oProtocolsystemuserDto.i_SystemUserId = _systemUserId.Value; oProtocolsystemuserDto.v_ProtocolId = protocol.v_ProtocolId; oProtocolsystemuserDto.i_ApplicationHierarchyId = int.Parse(applicationHierarchyId.Id); list.Add(oProtocolsystemuserDto); } _protocolBL.AddProtocolSystemUser(ref objOperationResult, list, _systemUserId, Globals.ClientSession.GetAsList(), false); } else { foreach (var protocol in groupByProtocol) { _protocolBL.DeletePermissisoByExternalUser(_systemUserId.Value, int.Parse(applicationHierarchyId.Id), protocol.v_ProtocolId, Globals.ClientSession.GetAsList()); } } }