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)); }
public JsonResult Create(FuncionalidadModeloVista entidad) { var funcionalidad = new Funcionalidad(); 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; funcionalidad.Acciones = new List <Accion>(); foreach (var opcion in entidad.Acciones) { var a = new Accion(); a.Codigo = opcion.Codigo; a.Nombre = opcion.Nombre; funcionalidad.Acciones.Add(a); } _iFuncionalidadService.SaveOrUpdate(funcionalidad); return(Json(entidad, JsonRequestBehavior.AllowGet)); }
public JsonResult Delete(FuncionalidadModeloVista entidad) { _iFuncionalidadService.Eliminar(entidad.Id); return(Json(true, JsonRequestBehavior.AllowGet)); }