public override void OnIntercept(FloatResourceInteraction a_interceptedInteraction, FloatResourceInteractable a_interactable) { FloatResource floatResource = a_interceptedInteraction.GetModifyResourceBy(); FloatResource newValue = new FloatResource(floatResource.Value * 0.5f); a_interceptedInteraction.SetModifyResourceBy(newValue); a_interceptedInteraction.Invoke(a_interactable); a_interceptedInteraction.SetModifyResourceBy(floatResource); }
public override void Execute() { if (Parameters.Count > 1) { if (Parameters[0].StartsWith("/")) { Parameters[0] = Parameters[0].Substring(1); } LWM2MResource resource = _Client.GetResource(Parameters[0]) as LWM2MResource; if (resource == null) { IResource parentResource = _Client.GetParentResource(Parameters[0]); resource = parentResource as LWM2MResource; if (resource == null && parentResource.Parent != null && String.IsNullOrEmpty(parentResource.Parent.Path)) { // object instance does not exist LWM2MResources resources = parentResource as LWM2MResources; string instanceID = Parameters[0].Split(new char[] { '/' }, StringSplitOptions.RemoveEmptyEntries)[1]; parentResource = resource = resources.CreateResource(instanceID); resources.ModifiedResource = resource; resources.Changed(); //(parentResource as LWM2MResource).Changed(); resource = null; } if (resource == null) { LWM2MResources resources = parentResource as LWM2MResources; if (resources != null) { string[] paths = Parameters[0].Split('/'); string name = paths[paths.Length - 1]; LWM2MResource childResource = null; BooleanResources booleanResources = resources as BooleanResources; if (booleanResources == null) { DateTimeResources dateTimeResources = resources as DateTimeResources; if (dateTimeResources == null) { FloatResources floatResources = resources as FloatResources; if (floatResources == null) { IntegerResources integerResources = resources as IntegerResources; if (integerResources == null) { OpaqueResources opaqueResources = resources as OpaqueResources; if (opaqueResources == null) { StringResources stringResources = resources as StringResources; if (stringResources == null) { } else { childResource = new StringResource(name); } } else { childResource = new OpaqueResource(name); } } else { childResource = new IntegerResource(name); } } else { childResource = new FloatResource(name); } } else { childResource = new DateTimeResource(name); } } else { childResource = new BooleanResource(name); } if (childResource != null) { childResource.SetValue(Parameters[1]); resources.Add(childResource); } } } else { } } else { resource.SetValue(Parameters[1]); resource.Changed(); LWM2MResource parent = resource.Parent as LWM2MResource; if (parent != null) { parent.Changed(); LWM2MResources grandparent = parent.Parent as LWM2MResources; if (grandparent != null) { grandparent.Changed(); } } } } }