Exemplo n.º 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;
            }
        }
        public static async Task <List <Nodo> > BuscarNodosPorTipo(Modelos.CMM.Type tipo)
        {
            RequestQuery  requestQuery  = new RequestQuery("TYPE:'" + tipo.PrefixedName + "'");
            SearchRequest searchRequest = new SearchRequest();

            searchRequest.Query = requestQuery;
            string searchRequestJson = JsonConvert.SerializeObject(searchRequest);
            string respuestaJson     = await busquedaServicio.Buscar(searchRequestJson);

            return(DeserializarArrayJson(respuestaJson));
        }
Exemplo n.º 3
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);
                    }
                }
            }
        }