public ActionResult Guardar(SolicitudAsignacionBienMuebleVob SolicitudAsignacion, int id = 0) { try { var solicitudNegocio = new GCPSolicitudAsignacionBienMuebleNegocio(); var asignacionBienNegocio = new GCPAsignacionBienMuebleNegocio(); int nroSolicitud = id; ICollection<AsignacionBienMuebleVob> asignaciones = GetCache<ICollection<AsignacionBienMuebleVob>>(SolicitudAsignacion.AsignacionBienMueble); SolicitudAsignacion.AsignacionBienMueble = asignaciones; int codigo; if (id > 0) { SolicitudAsignacion.Estado = new EstadoVob(); SolicitudAsignacion.Estado.IdEstado = 1; SolicitudAsignacion.IdEstado = 1; // Registrado SolicitudAsignacion.Area = new AreaVob(); SolicitudAsignacion.Area.IdArea = SolicitudAsignacion.IdArea; solicitudNegocio.Update(SolicitudAsignacion); codigo = SolicitudAsignacion.IdSolicitudAsignacion; // Elimino las asignaciones asignacionBienNegocio.DeleteAll(codigo); } else codigo = solicitudNegocio.Insert(SolicitudAsignacion); foreach (AsignacionBienMuebleVob a in asignaciones) asignacionBienNegocio.Insert(a, codigo); return RedirectToAction("Index"); } catch (Exception ex) { return RedirectToAction("ErrorSistema", "Error", new { mensaje = ex.Message }); } }