public JsonResult Edit(FuncionalidadModeloVista entidad) { var funcionalidad = _iFuncionalidadService.Get(entidad.Id); funcionalidad.Codigo = entidad.Codigo; funcionalidad.Nombre = entidad.Nombre; funcionalidad.Controlador = entidad.Controlador; funcionalidad.Descripcion = entidad.Descripcion; funcionalidad.EstadoId = entidad.EstadoId; funcionalidad.SistemaId = _application.GetCurrentSistema().Id; //Actualizados var actualizados = funcionalidad.Acciones.Where(c => entidad.Acciones.Any(d => c.Id == d.Id)); foreach (var actualizado in actualizados) { var elemento = entidad.Acciones.FirstOrDefault(i => i.Id == actualizado.Id); if (elemento != null) { actualizado.Codigo = elemento.Codigo; actualizado.Nombre = elemento.Nombre; } } //Nuevos var nuevos = entidad.Acciones.Where(c => c.Id == 0); foreach (var nuevo in nuevos) { var a = new Accion(); a.Codigo = nuevo.Codigo; a.Nombre = nuevo.Nombre; funcionalidad.Acciones.Add(a); } //Eliminados var eliminados = funcionalidad.Acciones.Where(c => entidad.Acciones.All(d => c.Id != d.Id)).ToList(); _iFuncionalidadService.EliminarAcciones(eliminados); _iFuncionalidadService.SaveOrUpdate(funcionalidad); return(Json(entidad, JsonRequestBehavior.AllowGet)); }
private IEnumerable <object> getItems(ICollection <MenuItem> items) { var itemsVista = (from x in items let MenuPadreNombre = string.IsNullOrEmpty(x.PadreCodigo) ? string.Empty : _menuService.GetItem(x.PadreCodigo).Nombre let TipoNombre = x.TipoId.ToString() let EstadoNombre = _catalogoService.GetItem((int)x.EstadoId)?.Nombre let FuncionalidadNombre = _funcionalidadService.Get(x.FuncionalidadId ?? 0)?.Nombre orderby x.Nombre select new { x.Id, x.Codigo, x.Descripcion, x.EstadoId, x.FuncionalidadId, x.Icono, x.Nombre, x.Orden, x.PadreCodigo, MenuPadreNombre, TipoNombre, EstadoNombre, FuncionalidadNombre, x.TipoId, x.Url }); return(itemsVista); }