/// <summary> /// Updates the route, product supervisor code, and production time for the model /// calls getTotalTime, setRoute, and setProdSupCode /// </summary> private void updateModelText() { try { //Check if the model information is supposed to be overriden Override modelOverride = _serviceProxy.getModelOverride(modelNumber); if (modelOverride != null) { //Model's information should be overriden routeText = modelOverride.OverrideRoute.ToString(); productionTime = modelOverride.OverrideTime; setProdSupCode(modelOverride.OverrideTime); } else { //Model's information is not overriden decimal totalTime = getTotalTime(); productionTime = totalTime; TimeSpan time = TimeSpan.FromHours((double)totalTime); setRoute(time); setProdSupCode(totalTime); } } catch (Exception e) { informationText = "There was a problem accessing the database."; Console.WriteLine(e.Message); } }
public override int GetHashCode() { unchecked { return((Override.GetHashCode() * 397) ^ (Items != null ? Items.GetHashCode() : 0)); } }
public void AddOverride(Override newOverride) { overrides.Add(newOverride); overrides.Sort(comparer); RefreshRendererMaterials(); }
public static int Main() { Base b = new Override(); b.Test(new GenericType <int> ()); return(0); }
/// <summary> /// Gets the hash code /// </summary> /// <returns>Hash code</returns> public override int GetHashCode() { unchecked // Overflow is fine, just wrap { var hashCode = 41; // Suitable nullity checks etc, of course :) if (Id != null) { hashCode = hashCode * 59 + Id.GetHashCode(); } hashCode = hashCode * 59 + Severity.GetHashCode(); hashCode = hashCode * 59 + Passed.GetHashCode(); hashCode = hashCode * 59 + Override.GetHashCode(); if (ActualValue != null) { hashCode = hashCode * 59 + ActualValue.GetHashCode(); } if (ExpectedValue != null) { hashCode = hashCode * 59 + ExpectedValue.GetHashCode(); } hashCode = hashCode * 59 + Comparator.GetHashCode(); if (Kpi != null) { hashCode = hashCode * 59 + Kpi.GetHashCode(); } return(hashCode); } }
public void RemoveOverride(Override overrideToRemove) { overrides.Remove(overrideToRemove); overrides.Sort(comparer); RefreshRendererMaterials(); }
public void WriteProfile(IProfile driverProfile) { OCSimulator.LogMessage("Sensor.WriteProfile", "Starting to write profile values"); OCSimulator.LogMessage("Sensor.WriteProfile" + " SimFromValue: " + SimFromValue); driverProfile.WriteValue(SensorName + OCSimulator.SIMFROMVALUE_PROFILENAME, SimFromValue.ToString(CultureInfo.InvariantCulture)); OCSimulator.LogMessage("Sensor.WriteProfile" + " SimToValue: " + SimToValue); driverProfile.WriteValue(SensorName + OCSimulator.SIMTOVALUE_PROFILENAME, SimToValue.ToString(CultureInfo.InvariantCulture)); OCSimulator.LogMessage("Sensor.WriteProfile" + " Is Implemented: " + IsImplemented); driverProfile.WriteValue(SensorName + OCSimulator.IS_IMPLEMENTED_PROFILENAME, IsImplemented.ToString(CultureInfo.InvariantCulture)); OCSimulator.LogMessage("Sensor.WriteProfile" + " ShowNotReady: " + ShowNotReady); driverProfile.WriteValue(SensorName + OCSimulator.SHOW_NOT_READY_PROFILENAME, ShowNotReady.ToString(CultureInfo.InvariantCulture)); OCSimulator.LogMessage("Sensor.WriteProfile" + " NotReadyDelay: " + NotReadyDelay); driverProfile.WriteValue(SensorName + OCSimulator.NOT_READY_DELAY_PROFILENAME, NotReadyDelay.ToString(CultureInfo.InvariantCulture)); OCSimulator.LogMessage("Sensor.WriteProfile" + " Value Cycle Time: " + ValueCycleTime); driverProfile.WriteValue(SensorName + OCSimulator.VALUE_CYCLE_TIME_PROFILE_NAME, ValueCycleTime.ToString(CultureInfo.InvariantCulture)); OCSimulator.LogMessage("Sensor.WriteProfile" + " Override: " + Override); driverProfile.WriteValue(SensorName + OCSimulator.OVERRIDE_PROFILENAME, Override.ToString(CultureInfo.InvariantCulture)); OCSimulator.LogMessage("Sensor.WriteProfile" + " OverrideValue: " + OverrideValue); driverProfile.WriteValue(SensorName + OCSimulator.OVERRIDE_VALUE_PROFILENAME, OverrideValue.ToString(CultureInfo.InvariantCulture)); OCSimulator.LogMessage("Sensor.WriteProfile" + " Completed writing profile values"); }
public static int Main() { Base <byte> b = new Override <byte> (); b.Test(new GenericType <int, byte> ()); return(0); }
public static void DrawLayer(Override ovd, int num) { (string name, Type type, object obj) = ovd.GetOverrideAt(num); Cell.EmptyLinePx(2); using (Cell.LineStd) { Cell.EmptyRowPx(2); using (Cell.RowPx(20)) Draw.Icon(UI.current.textures.GetTexture("DPUI/Icons/Layer")); using (Cell.Row) { obj = Draw.UniversalField(obj, type, name); if (Cell.current.valChanged) { ovd.SetOverrideAt(num, name, type, obj); RefreshMapMagic(name); } } Cell.EmptyRowPx(2); } Cell.EmptyLinePx(2); }
private void Update(EvaluationContext context) { var overridingSystem = Override.GetValue(context); Result.Value = overridingSystem ?? context.ParticleSystem; // Log.Debug("Getting particle system to " + Result.Value); }
public static void DrawLayeredOverride(Graph graph) /// Drawing override in layers-style (can add, remove or switch) /// For graph defaults { Override ovd = graph.defaults; using (Cell.LinePx(0)) LayersEditor.DrawLayers( ovd.Count, onDraw: n => DrawLayer(ovd, n), onAdd: n => NewOverrideWindow.ShowWindow(ovd, n), onRemove: n => ovd.RemoveAt(n), onMove: (n1, n2) => ovd.Switch(n1, n2)); using (Cell.LinePx(20)) { using (Cell.Row) if (Draw.Button("Add All Exposed")) { graph.defaults.AddAllExposed(graph.exposed, graph); } using (Cell.Row) if (Draw.Button("Remove Unused")) { graph.defaults.RemoveAllUnused(graph.exposed); } } }
public void ReadProfile(IProfile driverProfile) { OCSimulator.LogMessage("Sensor.ReadProfile", "Starting to read profile values"); SimFromValue = Convert.ToDouble(driverProfile.GetValue(SensorName + OCSimulator.SIMFROMVALUE_PROFILENAME, OCSimulator.SimulatorDefaultFromValues[SensorName].ToString(CultureInfo.InvariantCulture)), CultureInfo.InvariantCulture); OCSimulator.LogMessage("Sensor.ReadProfile" + " SimFromValue: " + SimFromValue); SimToValue = Convert.ToDouble(driverProfile.GetValue(SensorName + OCSimulator.SIMTOVALUE_PROFILENAME, OCSimulator.SimulatorDefaultToValues[SensorName].ToString(CultureInfo.InvariantCulture)), CultureInfo.InvariantCulture); OCSimulator.LogMessage("Sensor.ReadProfile" + " SimToValue: " + SimToValue); IsImplemented = Convert.ToBoolean(driverProfile.GetValue(SensorName + OCSimulator.IS_IMPLEMENTED_PROFILENAME, OCSimulator.IS_IMPLEMENTED_DEFAULT), CultureInfo.InvariantCulture); OCSimulator.LogMessage("Sensor.ReadProfile" + " Is Implemented: " + IsImplemented.ToString()); ShowNotReady = Convert.ToBoolean(driverProfile.GetValue(SensorName + OCSimulator.SHOW_NOT_READY_PROFILENAME, OCSimulator.SHOW_NOT_READY_DEFAULT), CultureInfo.InvariantCulture); OCSimulator.LogMessage("Sensor.ReadProfile" + " ShowNotReady: " + ShowNotReady.ToString()); NotReadyDelay = Convert.ToDouble(driverProfile.GetValue(SensorName + OCSimulator.NOT_READY_DELAY_PROFILENAME, OCSimulator.NOT_READY_DELAY_DEFAULT), CultureInfo.InvariantCulture); OCSimulator.LogMessage("Sensor.ReadProfile" + " NotReadyDelay: " + NotReadyDelay.ToString()); ValueCycleTime = Convert.ToDouble(driverProfile.GetValue(SensorName + OCSimulator.VALUE_CYCLE_TIME_PROFILE_NAME, OCSimulator.VALUE_CYCLE_TIME_DEFAULT), CultureInfo.InvariantCulture); OCSimulator.LogMessage("Sensor.ReadProfile" + " Value CycleTime: " + ValueCycleTime.ToString()); Override = Convert.ToBoolean(driverProfile.GetValue(SensorName + OCSimulator.OVERRIDE_PROFILENAME, OCSimulator.OVERRIDE_DEFAULT), CultureInfo.InvariantCulture); OCSimulator.LogMessage("Sensor.ReadProfile" + " Override: " + Override.ToString()); OverrideValue = Convert.ToDouble(driverProfile.GetValue(SensorName + OCSimulator.OVERRIDE_VALUE_PROFILENAME, OCSimulator.SimulatorDefaultFromValues[SensorName].ToString(CultureInfo.InvariantCulture)), CultureInfo.InvariantCulture); OCSimulator.LogMessage("Sensor.ReadProfile" + " OverrideValue: " + OverrideValue.ToString()); OCSimulator.LogMessage("Sensor.ReadProfile", "Completed reading profile values"); }
public async Task <Override> UpdateAsync(Guid id, string country, string area, DateTime searchedOn, DateTime startOn, DateTime endsOn, WarningType warningType) { var current = await _repository.GetAsync(id).ConfigureAwait(false); if (current == null) { throw new Exception("Item not found"); } var updated = new Override { Area = area, Country = country, StartsOn = startOn, EndsOn = endsOn, }; try { var item = await _repository.UpdateAsync(id, updated).ConfigureAwait(false); return(item); } catch (Exception e) { Console.WriteLine(e); throw; } }
public ObjectCore(Override m_added, Override m_update, Override m_removed, Override m_dispose) { MAdded = m_added; MUpdate = m_update; MRemoved = m_removed; MDispose = m_dispose; }
public override int GetHashCode() { unchecked { // TODO ensure Items.GetHashCode() works as expected return((Override.GetHashCode() * 397) ^ (Items != null ? Items.GetHashCode() : 0)); } }
private object GetOverrideProperty(string name) { if (string.IsNullOrEmpty(name) || EXCLUDED_OVERRIDE_PROPERTIES.Contains(name)) { return(null); } return(Override != null && Override.HasProperty(name) ? Override.GetProperty(name) : null); }
public static void Test() { var obj = new Override(); var method = typeof(object).GetMethod("ToString"); var ftn = method.MethodHandle.GetFunctionPointer(); var func = (Func <string>)Activator.CreateInstance(typeof(Func <string>), obj, ftn); Console.WriteLine(func()); }
internal static void ApplyOverride(IContentPack contentPack, Override obj) { try { Game1.locations[Game1.locations.FindIndex(l => l.name == obj.MapName)] = (GameLocation)Activator.CreateInstance(Game1.getLocationFromName(obj.MapName).GetType(), contentPack.LoadAsset <xTile.Map>(obj.FileName), obj.MapName); } catch (Exception err) { ModEntry.Logger.ExitGameImmediately("Unable to override location, a unexpected error occured: " + obj.ToString(), err); } }
public void CtorParameter() { // Arrange Container.RegisterType <Service>(Invoke.Constructor(_data)); // Act var value = Container.Resolve <Service>(Override.Dependency <string>(_override)); // Verify Assert.AreSame(_data, value.Data); }
public void Cyclic_DependencyOverride() { // Arrange Container.RegisterType <I0, G0>() .RegisterType <I1, G1>(); //next line throws StackOverflowException Container.Resolve <G1>( Override.Dependency <I0>( Resolve.Dependency <I1>())); }
public void Overrides_ValueOverrideForTypeDifferentThanResolvedTypeIsIgnored() { // Act var result = Container.Resolve <ObjectWithProperty>( Override.Property(nameof(ObjectWithProperty.MyProperty), Resolve.Dependency <ISomething>(Name)) .OnType <ObjectThatDependsOnSimpleObject>()); // Assert Assert.IsNotNull(result); Assert.IsNotNull(result.MyProperty); Assert.IsInstanceOfType(result.MyProperty, typeof(Something1)); }
public void Overrides_CanOverrideValue() { // Act var result = Container.Resolve <ObjectWithProperty>( Override.Property(nameof(ObjectWithProperty.MyProperty), Resolve.Dependency <ISomething>(Name)) .OnType <ObjectWithProperty>()); // Assert Assert.IsNotNull(result); Assert.IsNotNull(result.MyProperty); Assert.IsInstanceOfType(result.MyProperty, typeof(Something2)); }
public void Overrides_OverrideIsUsedInRecursiveBuilds() { // Setup const int expectedValue = 42; // Just need a number, value has no significance. // Act var result = Container.Resolve <ObjectThatDependsOnSimpleObject>( Override.Parameter("x", expectedValue)); // Verify Assert.AreEqual(expectedValue, result.TestObject.X); }
private void OnObjectDeserialized(int i, object newObject) { if (objectReferences != null && newObject != null) { var previousObject = objectReferences[i]; ShadowObject.CopyDynamicProperties(previousObject, newObject); if ((flags & AssetClonerFlags.RemoveOverrides) != 0) { Override.RemoveFrom(newObject); } } }
public bool Equals(XmlTranslationSet other) { if (other is null) { return(false); } if (ReferenceEquals(this, other)) { return(true); } return(Override.Equals(other.Override) && Items.SequenceEqual(other.Items)); }
public void Override_NamedDependency() { // Arrange Container.RegisterInstance(_data) .RegisterInstance(Name, Name); // Act var instance = Container.Resolve <CtorWithNamedDependency>(Override.Dependency <string>(Name, _override)); // Validate Assert.AreEqual(_override, instance.Data); }
/// <summary> /// Returns true if Metric instances are equal /// </summary> /// <param name="other">Instance of Metric to be compared</param> /// <returns>Boolean</returns> public bool Equals(Metric other) { if (other is null) { return(false); } if (ReferenceEquals(this, other)) { return(true); } return (( Id == other.Id || Id != null && Id.Equals(other.Id) ) && ( Severity == other.Severity || Severity.Equals(other.Severity) ) && ( Passed == other.Passed || Passed.Equals(other.Passed) ) && ( Override == other.Override || Override.Equals(other.Override) ) && ( ActualValue == other.ActualValue || ActualValue != null && ActualValue.Equals(other.ActualValue) ) && ( ExpectedValue == other.ExpectedValue || ExpectedValue != null && ExpectedValue.Equals(other.ExpectedValue) ) && ( Comparator == other.Comparator || Comparator.Equals(other.Comparator) ) && ( Kpi == other.Kpi || Kpi != null && Kpi.Equals(other.Kpi) )); }
//Use UnityEngine.MaterialPropertyBlock.AddColor(int nameID, Color value) for multiple material color changes. //You can use: Renderer.SetPropertyBlock(MaterialPropertyBlock property). public Information MaskHandler(Vector2 offset, Vector2 scale, Color color, int index, int count) { Information information = new Information(); for (int a = 0, A = overrides.Count; a < A; a++) { Override @override = overrides[a]; if (@override.type == Override.Type.Color) { for (int b = 0, B = @override.ranges.Count; b < B; b++) { Override.Range range = @override.ranges[b]; if (range.type == Override.Range.Type.Percentage) { int from = (int)(range.from * 0.01F * count); int to = (int)(range.to * 0.01F * count); if (index >= Mathf.Min(from, to) && index <= Mathf.Max(to, from)) { if (@override.effect == Override.Effect.Override) { information.color = @override.color; } else { information.color = Color.Lerp(color, @override.color, RangeConversion(index, from, to, 0F, 1F)); } } } else if (range.from < count && range.to < count && index >= Mathf.Min(range.from, range.to) && index <= Mathf.Max(range.to, range.from)) { if (@override.effect == Override.Effect.Override) { information.color = @override.color; } else { information.color = Color.Lerp(color, @override.color, RangeConversion(index, range.from, range.to, 0F, 1F)); } } } } else { if (@override.type == Override.Type.Offset) { } else if (@override.type == Override.Type.Scale) { } } } return(information); }
public void AddOverride(Override overr, bool onTile, int turnNumber, Vector2Int index) { if (onTile) { overridesOnTiles[index.x, index.y] = overr; } else { focusAgent.overridesOnTurns[turnNumber] = overr; } Play(true); }
public void Overrides_NonMatchingOverridesAreIgnoredAlternative() { // Setup const int expectedValue = 42; // Just need a number, value has no significance. // Act var result = Container.Resolve <SimpleTestObject>( Override.Parameter("x", expectedValue), Override.Parameter("y", expectedValue * 2)); // Verify Assert.AreEqual(expectedValue, result.X); }
private void ChartOverrides() { //Note, Overrides override eachother. Override override1 = new Override(); override1.Column = -2; // match all data columns override1.Row = -2; // match all rows; override1.PE = new PaintElement(Color.Blue); this.ultraChart1.Override.Add(override1); Override override2 = new Override(); override2.Column = 0; // column #1 only override2.Row = 1; // modify first data row override2.PE = new PaintElement(Color.Red); this.ultraChart1.Override.Add(override2); Override override3 = new Override(); override3.Column = 0; // column #1 only override3.Row = 7; // row 7 only override3.PE = new PaintElement(Color.Red); this.ultraChart1.Override.Add(override3); this.ultraChart1.Override.Enabled = true; }
public void run(PerSecurityWS ps) { try { //Setting overrides Override[] ovride = new Override[4]; ovride[0] = new Override(); ovride[0].field = "VWAP_START_DT"; DateTime start = DateTime.Today; ovride[0].value = start.ToString();// "20080227"; ovride[1] = new Override(); ovride[1].field = "VWAP_END_DT"; DateTime end = DateTime.Today.Subtract(TimeSpan.FromDays(5)); ovride[1].value = end.ToString();//"20080227"; ovride[2] = new Override(); ovride[2].field = "VWAP_START_TIME"; ovride[2].value = "1000"; ovride[3] = new Override(); ovride[3].field = "VWAP_END_TIME"; ovride[3].value = "1100"; //Setting the instruments for request Instrument bbUniqueId = new Instrument(); bbUniqueId.id = "EQ0086119600001000"; bbUniqueId.yellowkeySpecified = false; bbUniqueId.type = InstrumentType.BB_UNIQUE; bbUniqueId.typeSpecified = true; bbUniqueId.overrides = ovride; Instrument ticker = new Instrument(); ticker.id = "IBM US"; ticker.yellowkeySpecified = true; ticker.yellowkey = MarketSector.Equity; ticker.typeSpecified = false; ticker.type = InstrumentType.TICKER; ticker.overrides = ovride; //Setting request header GetDataHeaders getDataHeaders = new GetDataHeaders(); getDataHeaders.secmaster = true; getDataHeaders.secmasterSpecified = true; getDataHeaders.closingvalues = true; getDataHeaders.closingvaluesSpecified = true; getDataHeaders.programflag = ProgramFlag.daily; getDataHeaders.rundate = DateTime.Today.ToString(); getDataHeaders.time = "1430"; getDataHeaders.derived = true; //Submit get data request Console.WriteLine("Submit get data request"); SubmitGetDataRequest sbmtGtDrReq = new SubmitGetDataRequest(); sbmtGtDrReq.headers = getDataHeaders; sbmtGtDrReq.fields = new string[]{"ID_BB_UNIQUE","TICKER","PX_LAST","PX_ASK","PX_BID","VWAP_DT"}; Instruments instrs = new Instruments(); instrs.instrument = new Instrument[] {ticker, bbUniqueId}; sbmtGtDrReq.instruments = instrs; SubmitGetDataResponse sbmtGetDtResp= ps.submitGetDataRequest(sbmtGtDrReq); System.Console.WriteLine("Submit get data response Id = " + sbmtGetDtResp.responseId + "\n"); System.Threading.Thread.Sleep(100000); //Submit scheduled request for the get data request sent above Console.WriteLine("Submit scheduled request"); SubmitScheduledRequest sbmtSchReq = new SubmitScheduledRequest(); SubmitScheduledResponse sbmtSchResp = ps.submitScheduledRequest(sbmtSchReq); Console.WriteLine("Submit Schedule request responseID : " + sbmtSchResp.responseId + "\n"); //Submit retrieve scheduled request to display all the scheduled files and check to see //if the daily job requested was addeds Console.WriteLine("Retrieve scheduled request"); RetrieveScheduledRequest schReq = new RetrieveScheduledRequest(); schReq.responseId = sbmtSchResp.responseId; RetrieveScheduledResponse schResp = new RetrieveScheduledResponse(); //Keep sending the request until the entire response is received do { System.Threading.Thread.Sleep(PerSecurity.POLL_INTERVAL); schResp = ps.retrieveScheduledResponse(schReq); } while(schResp.statusCode.code==PerSecurity.DATA_NOT_AVAILABLE); Console.WriteLine(schResp.responseId); for(int i=0;i<schResp.fileDatas.Length;i++) { if (schResp.fileDatas[i].responseId == sbmtGetDtResp.responseId) Console.WriteLine("Response ID requested by submit get data request: " + schResp.fileDatas[i].responseId); else Console.WriteLine("Response ID: " + schResp.fileDatas[i].responseId + "\n"); Console.WriteLine("Response Header for retrieve schedule request"); Console.WriteLine("Date: " + schResp.fileDatas[i].headers.getdataHeaders.rundate + " Time: " + schResp.fileDatas[i].headers.getdataHeaders.time + " Scheduled: " + schResp.fileDatas[i].headers.getdataHeaders.programflag); Console.WriteLine("Fields"); for(int j=0;j<schResp.fileDatas[i].fields.Length;j++) { Console.WriteLine(schResp.fileDatas[i].fields[j]); } Console.WriteLine("Instruments"); for(int j=0;j<schResp.fileDatas[i].instruments.instrument.Length;j++) { Console.WriteLine("ID: " + schResp.fileDatas[i].instruments.instrument[j].id + "Type: " + schResp.fileDatas[i].instruments.instrument[j].type); } } //Sending a request to cancel the request for the daily job Console.WriteLine("Submit Cancel request"); CancelHeaders cancelHeaders = new CancelHeaders(); cancelHeaders.programflag = ProgramFlag.daily; SubmitCancelRequest sbCancelReq = new SubmitCancelRequest(); sbCancelReq.responseId[0] = sbmtGetDtResp.responseId; sbCancelReq.headers = cancelHeaders; Boolean flag = true; SubmitCancelResponse sbCancelResp = ps.submitCancelRequest(sbCancelReq); if(sbCancelResp.statusCode.code==0) { Console.WriteLine("Submit Cancel request response ID: " + sbCancelResp.responseId); } //Checked the scheduled request to check if the daily job has been removed Console.WriteLine("Submit scheduled request"); SubmitScheduledRequest sbmtSchReqCheck = new SubmitScheduledRequest(); SubmitScheduledResponse sbmtSchRespCheck = ps.submitScheduledRequest(sbmtSchReqCheck); Console.WriteLine("Submit Schedule request responseID : " + sbmtSchRespCheck.responseId + "\n"); Console.WriteLine("Retrieve scheduled request"); RetrieveScheduledRequest schReqCheck = new RetrieveScheduledRequest(); schReqCheck.responseId = sbmtSchRespCheck.responseId; RetrieveScheduledResponse schRespCheck = new RetrieveScheduledResponse(); do { System.Threading.Thread.Sleep(PerSecurity.POLL_INTERVAL); schRespCheck = ps.retrieveScheduledResponse(schReqCheck); } while(schRespCheck.fileDatas==null); Console.WriteLine("response ID for retrieveSchedule respone: " + schResp.responseId); String dispRespId = null; for(int i=0;i<schRespCheck.fileDatas.Length;i++) { if(schRespCheck.fileDatas[i].responseId==sbmtGetDtResp.responseId) { flag= true; dispRespId = schRespCheck.fileDatas[i].responseId; } else flag=false; } if(flag) Console.WriteLine("The daily job with response ID: " + dispRespId + "wasnt cancelled successfully"); else Console.WriteLine("The daily job was cancelled successfully"); } catch(Exception e) { Console.WriteLine(e.Message + e.StackTrace); } }
public void BasicOverrideTest() { Agenda agenda = new Agenda(); agenda.ConflictResolutionStrategy = new SalienceResolver(); Production prod = new Production(); prod.Label = "Gold Customer"; Variable customer = new Variable("customer"); Variable purchases = new Variable("purchases"); prod.AddConditionToLHS(new PositiveCondition("C1", customer, "purchases", purchases)); FunctionCondition gt = new FunctionCondition("C2", purchases, new FuncTerm("funcGreaterThan", new funcGreaterThan()), 10); gt.ConditionType = ConditionType.Function; prod.AddConditionToLHS(gt); AssertCondition rhs = new AssertCondition("R1", customer, "is", "gold"); rhs.ConditionType = ConditionType.Assert; prod.AddConditionToRHS(rhs); agenda.AddProduction(prod); Production prod1 = new Production(); prod1.Label = "Platinum Customer"; prod1.AddConditionToLHS(new PositiveCondition("C1", customer, "purchases", purchases)); FunctionCondition gt1 = new FunctionCondition("C2", purchases, new FuncTerm("funcGreaterThan", new funcGreaterThan()), 20); gt1.ConditionType = ConditionType.Function; prod1.AddConditionToLHS(gt1); AssertCondition rhs1 = new AssertCondition("R1", customer, "is", "Platinum"); rhs.ConditionType = ConditionType.Assert; prod1.AddConditionToRHS(rhs1); agenda.AddProduction(prod1); Override me = new Override(); me.Winner = "Platinum Customer"; me.Loser = "Gold Customer"; agenda.AddOverride(me); WME wme1 = new WME("W1"); wme1.Fields[0] = "joe"; wme1.Fields[1] = "purchases"; wme1.Fields[2] = "1"; agenda.AddFact(wme1); WME wme2 = new WME("W2"); wme2.Fields[0] = "ted"; wme2.Fields[1] = "purchases"; wme2.Fields[2] = "10"; agenda.AddFact(wme2); WME wme3 = new WME("W3"); wme3.Fields[0] = "ed"; wme3.Fields[1] = "purchases"; wme3.Fields[2] = "11"; agenda.AddFact(wme3); WME wme4 = new WME("W4"); wme4.Fields[0] = "phil"; wme4.Fields[1] = "purchases"; wme4.Fields[2] = "18"; agenda.AddFact(wme4); WME wme5 = new WME("W5"); wme5.Fields[0] = "mary"; wme5.Fields[1] = "purchases"; wme5.Fields[2] = "22"; agenda.AddFact(wme5); WME wme6 = new WME("W6"); wme6.Fields[0] = "jane"; wme6.Fields[1] = "purchases"; wme6.Fields[2] = "25"; agenda.AddFact(wme6); WME wme7 = new WME("W7"); wme7.Fields[0] = "fred"; wme7.Fields[1] = "purchases"; wme7.Fields[2] = "50"; agenda.AddFact(wme7); WME wme8 = new WME("W8"); wme8.Fields[0] = "harry"; wme8.Fields[1] = "purchases"; wme8.Fields[2] = "55"; agenda.AddFact(wme8); WME wme9 = new WME("W9"); wme9.Fields[0] = "jon"; wme9.Fields[1] = "purchases"; wme9.Fields[2] = "99"; agenda.AddFact(wme9); agenda.Run(); agenda.VisualizeNetworkToFile(@"C:\Temp\BasicOverrideTest.log", false); Assert.IsTrue(agenda.ActivatedRuleCount == 1, "Rule did not fire."); Assert.IsTrue(agenda.InferredFacts.Count == 5, "Bad"); }