コード例 #1
0
        public ActionResult ListaAplicacionesCaracteristicas()
        {
            IAplicacionesCaracteristicasServicio   srv      = Servicios.AplicacionesCaracteristicasServicio();
            IEnumerable <AplicacionCaracteristica> consulta = srv.Get();
            SelectList resul = new SelectList(consulta, "AplicacionCaracteristicaID", "Nombre");

            return(Json(resul, JsonRequestBehavior.AllowGet));
        }
コード例 #2
0
        //private string MapaRedireccionamiento(string urlOrigen)
        //{
        //    string cadenaAnalizar = urlOrigen;
        //    if (urlOrigen.Contains(value: '#'))
        //    {
        //        cadenaAnalizar = cadenaAnalizar.Substring(urlOrigen.IndexOf(value: '#'));
        //    }

        //    var reglas = new Dictionary<string, string>
        //    {
        //        //[ExpresionRegular] = "Expresion de salida",
        //        [@"^(?<base>#/.*)(?<resto>detalles.*)$"] = "${base}",
        //        [@"^(?<base>#/.*)(?!<resto>detalles.*)?$"] = "${base}",
        //    };

        //    foreach (var expresion in reglas.Keys)
        //    {
        //        var re = new Regex(expresion);
        //        Match matches = re.Match(cadenaAnalizar);
        //        if (matches.Success)
        //        {
        //            return re.Replace(cadenaAnalizar, reglas[expresion]);
        //        }
        //    }

        //    return "/";
        //}

        /// <summary>
        /// Actualiza la lista de características de una aplicación quitando y añadiendo las necesarias
        /// para que coincida con las indicadas en <paramref name="nuevaListaCaracteristicas"/>.
        /// </summary>
        /// <param name="aplicacion">Objeto correspondiente a la entidad Aplicación cuyas características van
        /// a ser modificadas.</param>
        /// <param name="nuevaListaCaracteristicas">IDs del nuevo conjunto de características de la
        /// aplicación.</param>
        private void ActualizarCaracteristicas(Aplicacion aplicacion, IEnumerable <long> nuevaListaCaracteristicas)
        {
            IAplicacionesCaracteristicasServicio srv = Servicios.AplicacionesCaracteristicasServicio();
            // Obtener las características que no se eliminan y las que se añaden como nuevas
            IEnumerable <long> caracteristicasActuales   = aplicacion.Caracteristicas.Select(ca => ca.AplicacionCaracteristicaID);
            IEnumerable <long> caracteristicasAniadirIDs = nuevaListaCaracteristicas == null
                ? new long[0]
                : nuevaListaCaracteristicas.Where(caid => !caracteristicasActuales.Contains(caid));
            IEnumerable <AplicacionCaracteristica> caracteristicasNuevas =
                srv.Get(a => caracteristicasAniadirIDs.Contains(a.AplicacionCaracteristicaID));
            IEnumerable <AplicacionCaracteristica> caracteristicasMantener =
                aplicacion.Caracteristicas
                .Where(aa => nuevaListaCaracteristicas.Contains(aa.AplicacionCaracteristicaID));

            // Limpiar las características actuales de la aplicación y establecer el conjunto unión de las
            // dos colecciones obtenidas antes.
            IEnumerable <AplicacionCaracteristica> caracteristicas = caracteristicasNuevas.Union(caracteristicasMantener);

            aplicacion.Caracteristicas.Clear();
            aplicacion.Caracteristicas.AddRange(caracteristicas);
        }
コード例 #3
0
        public async Task <ActionResult> Nuevo([DataSourceRequest] DataSourceRequest request, AplicacionGrid model)
        {
            DataSourceResult result = new[] { model }.ToDataSourceResult(request, ModelState);

            if (ModelState.IsValid)
            {
                try
                {
                    IAplicacionesServicio srv   = Servicios.AplicacionesServicio();
                    Aplicacion            nueva = srv.Create();
                    model.ActualizarEntidad(nueva);
                    if (model.Caracteristicas != null && model.Caracteristicas.Any())
                    {
                        IAplicacionesCaracteristicasServicio acSrv = Servicios.AplicacionesCaracteristicasServicio();
                        nueva.Caracteristicas.AddRange(acSrv.Get(ca => model.Caracteristicas.Contains(ca.AplicacionCaracteristicaID)));
                    }
                    srv.Insert(nueva);
                    await srv.ApplyChangesAsync();

                    result = new[] { AplicacionGrid.FromEntity(nueva) }.ToDataSourceResult(request, ModelState);
                }
                catch (SubdominioExisteException see)
                {
                    log.Error($"Error al añadir {Txt.Aplicaciones.ArtEntidad}. Usuario: {CurrentUserID()}", see);
                    result.Errors = new[] { string.Format(Txt.ErroresComunes.Modificar + see.Message, Txt.Aplicaciones.ArtEntidad).Frase() };
                }
                catch (AplicacionExisteException see)
                {
                    log.Error($"Error al modificar {Txt.Aplicaciones.ArtEntidad}. Usuario: {CurrentUserID()}", see);
                    result.Errors = new[] { string.Format(Txt.ErroresComunes.Modificar + see.Message, Txt.Aplicaciones.ArtEntidad).Frase() };
                }
                catch (Exception e)
                {
                    log.Error("Error al añadir " + Txt.Aplicaciones.ArtEntidad + " " + model.Nombre, e);
                    result.Errors = new[] { string.Format(Txt.ErroresComunes.Aniadir, Txt.Aplicaciones.ArtEntidad).Frase() };
                }
            }

            return(Json(result));
        }