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