コード例 #1
0
        /// <summary>
        /// Mapea el tipo actual del nodo, al atributo TipoNodo del objeto Nodo
        /// </summary>
        /// <param name="propiedadesDeserializadas"></param>
        /// <param name="nodoListo"></param>
        /// <returns></returns>
        private async static Task AñadirTipoPersonalizado(dynamic propiedadesDeserializadas, Nodo nodoListo)
        {
            string prefijoModeloNodo = nodoListo.NodeType.Split(':')[0];
            string nombreTipoNodo    = nodoListo.NodeType.Split(':')[1];

            //Si no existe el modelo, entonces no se añade el tipo personalizado
            Model modelo = await ModelosPersonalizadosStatic.ObtenerModeloPersonalizadoxPrefijo(prefijoModeloNodo);

            if (!(modelo is null))
            {
                Modelos.CMM.Type tipoNodo = await TiposPersonalizadosStatic.ObtenerTipoPersonalizado(modelo.Name, nombreTipoNodo);

                string nodoPropertiesJson = JsonConvert.SerializeObject(propiedadesDeserializadas);
                Dictionary <string, dynamic> nodoProperties = JsonConvert.DeserializeObject <Dictionary <string, dynamic> >(nodoPropertiesJson);

                if (!(nodoProperties is null))
                {
                    foreach (var propiedad in nodoProperties)
                    {
                        Property propiedadTemp = tipoNodo.Properties.Find(x => x.PrefixedName == propiedad.Key);
                        if (!(propiedadTemp is null))
                        {
                            propiedadTemp.Value = propiedad.Value;
                            continue;
                        }
                    }
                }

                tipoNodo.ModeloPerteneciente = modelo;
                nodoListo.TipoNodo           = tipoNodo;
            }
        }
コード例 #2
0
        private async Task PoblarDtgv()
        {
            List <Modelos.CMM.Type> tipos = await TiposPersonalizadosStatic.ObtenerTiposPersonalizados(modelo.Name);

            dtgviewDatos.AutoGenerateColumns = false;
            dtgviewDatos.DataSource          = tipos;
            dtgviewDatos.Columns["clmNombreTipo"].DataPropertyName = "Name";
            dtgviewDatos.Columns["clmEtiquetaPresentacionTipo"].DataPropertyName = "Title";
            dtgviewDatos.Columns["clmPadreTipo"].DataPropertyName = "ParentName";
        }
コード例 #3
0
        private async Task CargarTipos(Model modeloSeleccionado)
        {
            List <Modelos.CMM.Type> tipos = await TiposPersonalizadosStatic.ObtenerTiposPersonalizados(modeloSeleccionado.Name);

            cmbxTipoAspecto.Items.Clear();
            cmbxPropiedad.Items.Clear();
            foreach (var item in tipos)
            {
                cmbxTipoAspecto.Items.Add(item);
            }
        }
コード例 #4
0
        private async Task cargarCmbxPadres()
        {
            cmbxPadre.Items.Clear();
            List <Modelos.CMM.Type> tiposActivos = await TiposPersonalizadosStatic.ObtenerTiposActivos();

            foreach (var tipo in tiposActivos)
            {
                cmbxPadre.Items.Add(tipo.PrefixedName);
            }
            cmbxPadre.Items.Add("cm:content");
            cmbxPadre.Items.Add("cm:folder");
        }
コード例 #5
0
 private async Task PoblarDtgv()
 {
     if (proveniente == "ASPECTOS")
     {
         subModelo = await AspectosPersonalizadosStatic.ObtenerAspectoPersonalizado(modelo.Name, subModelo.Name);
     }
     if (proveniente == "TIPOS")
     {
         subModelo = await TiposPersonalizadosStatic.ObtenerTipoPersonalizado(modelo.Name, subModelo.Name);
     }
     dtgviewDatos.AutoGenerateColumns = false;
     dtgviewDatos.DataSource          = subModelo.Properties;
     dtgviewDatos.Columns["clmNombreTipo"].DataPropertyName = "Name";
     dtgviewDatos.Columns["clmEtiquetaPresentacionTipo"].DataPropertyName = "Title";
     dtgviewDatos.Columns["clmTipoDato"].DataPropertyName     = "DataType";
     dtgviewDatos.Columns["clmRequisito"].DataPropertyName    = "Mandatory";
     dtgviewDatos.Columns["clmValorDefault"].DataPropertyName = "DefaultValue";
 }
コード例 #6
0
        private async Task CargarPropiedades(Model modelo, dynamic aspectoTipo)
        {
            List <Property> propiedades = new List <Property>();

            if (radioBtnAspecto.Checked)
            {
                propiedades = (await AspectosPersonalizadosStatic.ObtenerAspectoPersonalizado(modelo.Name, aspectoTipo.Name)).Properties;
            }
            else if (radioBtnTipo.Checked)
            {
                propiedades = (await TiposPersonalizadosStatic.ObtenerTipoPersonalizado(modelo.Name, aspectoTipo.Name)).Properties;
            }
            cmbxPropiedad.Items.Clear();
            foreach (var item in propiedades)
            {
                cmbxPropiedad.Items.Add(item);
            }
        }
コード例 #7
0
        private async Task pruebaUnitaria()
        {
            //prueba unitaria
            Model modelo = await ModelosPersonalizadosStatic.ObtenerModeloPersonalizado("testModelNueva");

            Console.WriteLine("N " + modelo.Name);
            Console.WriteLine("M " + modelo.Author);
            Console.WriteLine("S " + modelo.Status);
            //Console.WriteLine("Types: "+modelo.Types.Count);

            List <Modelos.CMM.Type> tipos = await TiposPersonalizadosStatic.ObtenerTiposPersonalizados("testModelNueva");

            foreach (var item in tipos)
            {
                Console.WriteLine("********TIPOS*******");
                Console.WriteLine("Nombre: " + item.Name);
                Console.WriteLine("Descripción: " + item.Description);
                Console.WriteLine("Título" + item.Title);
                foreach (var prop in item.Properties)
                {
                    Console.WriteLine("----*Propiedades*");
                    Console.WriteLine("----Nombre:" + prop.Name);
                    Console.WriteLine("----Título: " + prop.Title);
                    if (prop.Constraints is null)
                    {
                    }
                    else
                    {
                        foreach (var constr in prop.Constraints)
                        {
                            Console.WriteLine("-----------*Constraint*: " + constr.Name);
                            Console.WriteLine("-----------Const PrefixedName:  " + constr.PrefixedName);
                            Console.WriteLine("-------------------*Params*");
                            foreach (var param in constr.Parameters)
                            {
                                Console.WriteLine("----------------- key: " + param.Name + " valor: " + param.SimpleValue);
                            }
                        }
                    }
                }
            }
            List <Aspect> aspectos = await AspectosPersonalizadosStatic.ObtenerAspectosPersonalizados("testModelNueva");

            foreach (var aspecto in aspectos)
            {
                Console.WriteLine();
                Console.WriteLine("********ASPECTOS*******");
                Console.WriteLine("Nombre: " + aspecto.Name);
                foreach (var prop in aspecto.Properties)
                {
                    Console.WriteLine("----*Propiedades*");
                    Console.WriteLine("-----Nombre: " + prop.Name);
                    Console.WriteLine("-----Descripción: " + prop.Description);
                    Console.WriteLine("-----Título: " + prop.Title);
                    Console.WriteLine("-----Tipo de dato: " + prop.Datatype);
                    Console.WriteLine("-----Valor por defecto: " + prop.DefaultValue);
                    Console.WriteLine("-----Prefixed Name:" + prop.PrefixedName);
                    Console.WriteLine("-----Indexación" + prop.IndexTokenisationMode);
                    Console.WriteLine("-----Multivalorado:" + prop.MultiValued);
                    foreach (var constraint in prop.Constraints)
                    {
                        Console.WriteLine("-----------*Constraint*: " + constraint.Name);
                        Console.WriteLine("------------Prefijo: " + constraint.PrefixedName);
                        Console.WriteLine("------------Tipo " + constraint.Type);
                        Console.WriteLine("-------------------*Params*");
                        foreach (var param in constraint.Parameters)
                        {
                            Console.WriteLine("------------------Nombre:" + param.Name);
                            Console.WriteLine("------------------Valor simple:" + param.SimpleValue);
                        }
                    }
                }
            }
        }
コード例 #8
0
        private async void btnAceptarTipo_Click(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(txtNombre.Text) || cmbxPadre.SelectedItem == null)//////
            {
                MessageBox.Show("Es obligatorio llenar el campo: Nombre y Seleccionar una opción en Padre", "Advertencia", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }
            else
            {
                FLoading fPrincipalLoading = new FLoading();
                try
                {
                    if (btnAceptarTipo.Text == "Crear")
                    {
                        try
                        {
                            Modelos.CMM.Type tipoCrear = new Modelos.CMM.Type();
                            tipoCrear.Name        = txtNombre.Text;
                            tipoCrear.ParentName  = cmbxPadre.SelectedItem.ToString();
                            tipoCrear.Description = txtDescripcion.Text;
                            tipoCrear.Title       = txtTitulo.Text;
                            tipoCrear.ModeloPerteneciente.Name = modelo.Name;
                            fPrincipalLoading.Show();
                            await TiposPersonalizadosStatic.CrearTipoPersonalizado(tipoCrear);

                            MessageBox.Show("El tipo ha sido creado exitosamente.", "Creado", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            await PoblarDtgv();
                        }
                        catch (TypeException exception)
                        {
                            fPrincipalLoading.Close();
                            NuevaPlantilla();
                            if (exception.Codigo == 409)
                            {
                                MessageBox.Show("Uno de los nombres especificados ya se está utilizando", "", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            }
                            else
                            {
                                MessageBox.Show("Transacción abortada, hubo un error.", "", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            }
                        }
                    }
                    else if (btnAceptarTipo.Text == "Editar")
                    {
                        try
                        {
                            Modelos.CMM.Type tipoActualizar = new Modelos.CMM.Type();
                            tipoActualizar.Name        = txtNombre.Text;
                            tipoActualizar.ParentName  = cmbxPadre.SelectedItem.ToString();
                            tipoActualizar.Description = txtDescripcion.Text;
                            tipoActualizar.Title       = txtTitulo.Text;
                            tipoActualizar.ModeloPerteneciente.Name = modelo.Name;
                            fPrincipalLoading.Show();
                            await TiposPersonalizadosStatic.ActualizarTipoPersonalizado(tipoActualizar);

                            MessageBox.Show("El tipo ha sido actualizado exitosamente.", "Actualizado", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            await PoblarDtgv();

                            NuevaPlantilla();
                        }
                        catch (TypeException exception)
                        {
                            fPrincipalLoading.Close();
                            NuevaPlantilla();
                            if (exception.Codigo == 409)
                            {
                                MessageBox.Show("No se puede cambiar el padre de un Tipo activo que se está utilizando.", "", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            }
                            else
                            {
                                MessageBox.Show("Transacción abortada, hubo un error.", "", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            }
                        }
                    }
                }
                catch (TypeException exception)
                {
                    fPrincipalLoading.Close();
                    NuevaPlantilla();
                    if (exception.Codigo == 403)
                    {
                        MessageBox.Show("Permisos insuficientes", "Información", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                    else
                    {
                        MessageBox.Show("Transacción abortada, hubo un error.", "", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                }
            }
        }