public CommandResult Handle(AsignarMenuOpcionRolCommand command) { if (command == null) { throw new System.ArgumentException("Se requiere el parametro command."); //SistemaRolUsuarioException("ddd") } var pag_int_id_array_delete = new List <int>(); var sis_int_id = GetSistemaId(command.sis_str_sigla); var sistemarol = _sistemarol.Get(x => x.rol_int_id == command.rol_int_id).LastOrDefault(); if (sistemarol == null) { var dominio_sr = new SistemaRol(); dominio_sr.rol_int_id = command.rol_int_id; dominio_sr.sis_int_id = sis_int_id; _sistemarol.Add(dominio_sr); _sistemarol.Commit(); } //Listado de id que se van a eliminar var dominio_opc_rol_array = _sistemarolpagina.Get(x => x.sis_int_id == sis_int_id && x.rol_int_id == command.rol_int_id); foreach (var domopc in dominio_opc_rol_array) { var obj = command.opc_obj_array.LastOrDefault(x => x.opc_int_id == domopc.pag_int_id); if (obj != null) { pag_int_id_array_delete.Add(domopc.pag_int_id); } } //activo opciones foreach (var pag_int_id in pag_int_id_array_delete) { var dominio_opc_eliminar = _sistemarolpagina.Get(x => x.sis_int_id == sis_int_id && x.rol_int_id == command.rol_int_id && x.pag_int_id == pag_int_id).LastOrDefault(); if (dominio_opc_eliminar != null) { _sistemarolpagina.Delete(dominio_opc_eliminar); } } _sistemarolpagina.Commit(); //ingresando opciones nuevos var contador = 0; foreach (var opc_int_id_command in command.opc_obj_array) { var dominio_opc_insertar = _sistemarolpagina.Get (x => x.sis_int_id == sis_int_id && x.rol_int_id == command.rol_int_id && x.pag_int_id == opc_int_id_command.opc_int_id).LastOrDefault(); if (dominio_opc_insertar == null && opc_int_id_command.opc_bit_seleccionado == true) { dominio_opc_insertar = new SistemaRolPagina() { rol_int_id = command.rol_int_id, pag_int_id = opc_int_id_command.opc_int_id, sis_int_id = sis_int_id, srp_str_codpermiso = opc_int_id_command.opc_str_permiso }; _sistemarolpagina.Add(dominio_opc_insertar); contador++; } else if (opc_int_id_command.opc_bit_seleccionado == true) { dominio_opc_insertar.srp_str_codpermiso = opc_int_id_command.opc_str_permiso; contador++; } } _sistemarolpagina.Commit(); return(new AsignarMenuOpcionRolOutput() { nro_opciones_procesados = contador }); }
public CommandResult Handle(AsignarRolesUsuariosCommand command) { if (command == null) { throw new System.ArgumentException("Se requiere el parametro command."); //SistemaRolUsuarioException("ddd") } var rol_int_id_array_delete = new List <int>(); var sis_int_id = GetSistemaId(command.sis_str_siglas); //Listado de id que se van a eliminar var dominio_rol_usuario_array = _sistemarolusuario.Get(x => x.sis_int_id == sis_int_id && x.usr_int_id == command.usr_int_id); foreach (var dominiorol in dominio_rol_usuario_array) { var obj = command.rol_int_id_array.LastOrDefault(x => x == dominiorol.rol_int_id); if (obj == null || obj == 0) { rol_int_id_array_delete.Add(dominiorol.rol_int_id); } } //activo roles foreach (var rol_int_id in rol_int_id_array_delete) { var dominio_rol_eliminar = _sistemarolusuario.Get(x => x.sis_int_id == sis_int_id && x.usr_int_id == command.usr_int_id && x.rol_int_id == rol_int_id).LastOrDefault(); if (dominio_rol_eliminar != null) { _sistemarolusuario.Delete(dominio_rol_eliminar); } } _sistemarolusuario.Commit(); //ingresando roles nuevos var contador = 0; foreach (var rol_int_id_command in command.rol_int_id_array) { var dominio_rol_insertar = _sistemarolusuario.Get(x => x.sis_int_id == sis_int_id && x.usr_int_id == command.usr_int_id && x.rol_int_id == rol_int_id_command).LastOrDefault(); if (dominio_rol_insertar == null) { //agregar sistemarol var dominio_sistemarol = _sistemarol.Get(x => x.rol_int_id == rol_int_id_command && x.sis_int_id == sis_int_id).LastOrDefault(); if (dominio_sistemarol == null) { dominio_sistemarol = new SistemaRol(); dominio_sistemarol.sis_int_id = sis_int_id; dominio_sistemarol.rol_int_id = rol_int_id_command; _sistemarol.Add(dominio_sistemarol); _sistemarol.Commit(); } dominio_rol_insertar = new SistemaRolUsuario() { rol_int_id = rol_int_id_command, sis_int_id = sis_int_id, usr_int_id = command.usr_int_id, rol_bit_prin = false }; _sistemarolusuario.Add(dominio_rol_insertar); contador++; } } _sistemarolusuario.Commit(); return(new AsignarRolesUsuariosOutput() { nro_roles_procesados = contador }); }