public string GeneratePropertyString()

in Services/DataX.SimulatedData/DataX.SimulatedData.DataGenService/DataGen.cs [115:227]


        public string GeneratePropertyString(Properties property, bool isFirstProperty)
        {
            string result = "";
            string propertyName = "";
            try
            {
                propertyName = property.name;
                if (property.type.ToLower() != "struct")
                {
                    if (!string.IsNullOrEmpty(property.value))
                    {
                        if (property.type.ToLower() == "long" || property.type.ToLower() == "int" || property.type.ToLower() == "double")
                        {
                            result += (isFirstProperty) ? ($"\"{property.name}\":{property.value}")
                                : ($",\"{property.name}\":{property.value}");
                        }
                        else if (property.type.ToLower() == "string")
                        {
                            result += (isFirstProperty) ? ($"\"{property.name}\":\"{property.value}\"")
                                : ($",\"{property.name}\":\"{property.value}\"");
                        }
                    }
                    else if (!string.IsNullOrEmpty(property.minRange) && !string.IsNullOrEmpty(property.maxRange))
                    {
                        if (!property.castAsString)
                        {
                            if (property.type.ToLower() == "array")
                            {
                                //add first number
                                result += (isFirstProperty) ? ($"\"{property.name}\":[") : ($",\"{property.name}\":[");
                                if (property.length > 0)
                                {
                                    result += GetRandomDouble(double.Parse(property.minRange), double.Parse(property.maxRange));
                                }
                                //add rest of array
                                for (int i = 0; i < property.length - 1; i++)
                                {
                                    result += "," + GetRandomDouble(double.Parse(property.minRange), double.Parse(property.maxRange));
                                }
                                //close array
                                result += "]";
                            }
                            else if (property.type.ToLower() == "long" || property.type.ToLower() == "int")
                            {
                                result += (isFirstProperty) ? ($"\"{property.name}\":{GetRandomInt(int.Parse(property.minRange), int.Parse(property.maxRange))}")
                                                                : ($",\"{property.name}\":{GetRandomInt(int.Parse(property.minRange), int.Parse(property.maxRange))}");
                            }
                            else if (property.type.ToLower() == "decimal" || property.type.ToLower() == "double")
                            {
                                result += (isFirstProperty) ? ($"\"{property.name}\":{GetRandomDouble(double.Parse(property.minRange), double.Parse(property.maxRange))}")
                                                                : ($",\"{property.name}\":{GetRandomDouble(double.Parse(property.minRange), double.Parse(property.maxRange))}");
                            }
                            else
                            {
                                throw new Exception("Unknown type of data being requested");
                            }
                        }
                        else
                        {
                            if (property.type.ToLower() == "array")
                            {
                                //add first number
                                result += (isFirstProperty) ? ($"\"{property.name}\":[") : ($",\"{property.name}\":[");
                                if (property.length > 0)
                                {
                                    result += "\"" + GetRandomDouble(double.Parse(property.minRange), double.Parse(property.maxRange)) + "\"";
                                }
                                //add rest of array
                                for (int i = 0; i < property.length - 1; i++)
                                {
                                    result += "," + "\"" + GetRandomDouble(double.Parse(property.minRange), double.Parse(property.maxRange)) + "\"";
                                }
                                //close array
                                result += "]";
                            }
                            else if (property.type.ToLower() == "long" || property.type.ToLower() == "int")
                            {
                                result += (isFirstProperty) ? ($"\"{property.name}\":\"{GetRandomInt(int.Parse(property.minRange), int.Parse(property.maxRange))}\"")
                                                                : ($",\"{property.name}\":\"{GetRandomInt(int.Parse(property.minRange), int.Parse(property.maxRange))}\"");
                            }
                            else if (property.type.ToLower() == "decimal" || property.type.ToLower() == "double")
                            {
                                result += (isFirstProperty) ? ($"\"{property.name}\":\"{GetRandomDouble(double.Parse(property.minRange), double.Parse(property.maxRange))}\"")
                                                                : ($",\"{property.name}\":\"{GetRandomDouble(double.Parse(property.minRange), double.Parse(property.maxRange))}\"");
                            }
                            else
                            {
                                throw new Exception("Unknown type of data being requested");
                            }
                        }
                    }
                    else if (property.type.ToLower() == "datetime")
                    {
                        result += (isFirstProperty) ? ($"\"{property.name}\":\"{DateTime.UtcNow.AddSeconds(property.utcAddSeconds).ToString(property.datetimeStringFormat)}\"")
                            : ($",\"{property.name}\":\"{DateTime.UtcNow.AddSeconds(property.utcAddSeconds).ToString(property.datetimeStringFormat)}\"");
                    }
                    else if (property.valueList != null)
                    {
                        result += (isFirstProperty) ? ($"\"{property.name}\":\"{property.valueList[GetRandomInt(0, property.valueList.Count)]}\"")
                            : ($",\"{property.name}\":\"{property.valueList[GetRandomInt(0, property.valueList.Count)]}\"");
                    }
                }
                else
                {
                    result += (isFirstProperty) ? ($"\"{property.name}\":{{{GeneratePropertyString(property.properties)}}}") : ($",\"{property.name}\":{{{GeneratePropertyString(property.properties)}}}");
                }
            }
            catch (Exception e)
            {
                throw new Exception(e.Message + " on " + propertyName);
            }
            return result;
        }