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
            });
        }
Example #2
0
        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
            });
        }