in Services/DataX.SimulatedData/DataX.SimulatedData.DataGenService/DataGen.cs [252:328]
public JObject GenerateRulesData(RulesData rule, int counter)
{
JObject dataStream = JObject.Parse(rule.dataStream);
if (rule.triggerConditions != null)
{
foreach (var tc in rule.triggerConditions)
{
var parent = dataStream.SelectToken(tc.parentJsonPropertyPath);
if (tc.propertyType.ToLower() == "datetime")
{
parent[tc.propertyName] = DateTime.UtcNow.AddSeconds(tc.utcAddSeconds).ToString(tc.datetimeStringFormat);
}
else if (tc.propertyType.ToLower() == "double" || tc.propertyType.ToLower() == "decimal")
{
if (!(tc.ruleNotTriggerTimeInMinutes.Contains(counter)))
{
if (tc.castAsString)
{
parent[tc.propertyName] = (!string.IsNullOrEmpty(tc.ruleTriggerValue)) ? tc.ruleTriggerValue : GetRandomDouble(tc.ruleTriggerMinRange, tc.ruleTriggerMaxRange).ToString();
}
else
{
parent[tc.propertyName] = (!string.IsNullOrEmpty(tc.ruleTriggerValue)) ? double.Parse(tc.ruleTriggerValue) : GetRandomDouble(tc.ruleTriggerMinRange, tc.ruleTriggerMaxRange);
}
}
else
{
if (tc.castAsString)
{
parent[tc.propertyName] = (!string.IsNullOrEmpty(tc.ruleNotTriggerValue)) ? tc.ruleNotTriggerValue : GetRandomDouble(tc.ruleNotTriggerMinRange, tc.ruleNotTriggerMaxRange).ToString();
}
else
{
parent[tc.propertyName] = (!string.IsNullOrEmpty(tc.ruleNotTriggerValue)) ? double.Parse(tc.ruleNotTriggerValue) : GetRandomDouble(tc.ruleNotTriggerMinRange, tc.ruleNotTriggerMaxRange);
}
}
}
else if (tc.propertyType.ToLower() == "int" || tc.propertyType.ToLower() == "long")
{
if (!(tc.ruleNotTriggerTimeInMinutes.Contains(counter)))
{
if (tc.castAsString)
{
parent[tc.propertyName] = (!string.IsNullOrEmpty(tc.ruleTriggerValue)) ? tc.ruleTriggerValue : GetRandomInt((int)tc.ruleTriggerMinRange, (int)tc.ruleTriggerMaxRange).ToString();
}
else
{
parent[tc.propertyName] = (!string.IsNullOrEmpty(tc.ruleTriggerValue)) ? int.Parse(tc.ruleTriggerValue) : GetRandomInt((int)tc.ruleTriggerMinRange, (int)tc.ruleTriggerMaxRange);
}
}
else
{
if (tc.castAsString)
{
parent[tc.propertyName] = (!string.IsNullOrEmpty(tc.ruleNotTriggerValue)) ? tc.ruleNotTriggerValue : GetRandomInt((int)tc.ruleNotTriggerMinRange, (int)tc.ruleNotTriggerMaxRange).ToString();
}
else
{
parent[tc.propertyName] = (!string.IsNullOrEmpty(tc.ruleNotTriggerValue)) ? int.Parse(tc.ruleNotTriggerValue) : GetRandomInt((int)tc.ruleNotTriggerMinRange, (int)tc.ruleNotTriggerMaxRange);
}
}
}
else if (tc.propertyType.ToLower() == "string")
{
if (!(tc.ruleNotTriggerTimeInMinutes.Contains(counter)))
{
parent[tc.propertyName] = tc.ruleTriggerValue;
}
else
{
parent[tc.propertyName] = tc.ruleNotTriggerValue;
}
}
}
}
return dataStream;
}