public static string BuildCommand(string typeCode, string apiCode, string uid, Parameters pm, Clock clock = null) { StringBuilder sb = new StringBuilder(64); sb.AppendLine(typePrefix + typeCode); sb.AppendLine(uidPrefix + uid); sb.AppendLine(opPrefix + apiCode); if (clock is null) { sb.AppendLine(clockPrefix + "0:0:0"); } else { sb.AppendLine(clockPrefix + clock.ToString()); } API.TypeToString toStr = null; List <string> pmTypesConverters = API.typeList[API.typeCodeList[typeCode]].paramsList[apiCode]; for (int i = 0; i < pm.size; i++) { object o = pm.AllParams()[i]; toStr = API.GetToStringConverter(pmTypesConverters[i]); sb.Append(paramPrefix + toStr(o) + "\n"); } return(sb.ToString()); }
public void TestAddNewConverter() { API.StringToType stt = delegate(string x) { return (object)x; }; API.TypeToString tts = delegate(object x) { return ((string)x); }; API.AddConverter("test", stt, tts); object o = API.GetToTypeConverter("test")("Hello World"); Assert.Equal("Hello World", API.GetToStringConverter("test")(o)); }
public void TestAddNewAPIWithParam() { API.StringToType stt = delegate(string x) { return (object)x; }; API.TypeToString tts = delegate(object x) { return ((string)x); }; API.AddConverter("test", stt, tts); API.AddNewAPI("GCounter", "GetValue", "g", "test"); CRDTypeInfo gctypeinfo = API.typeList[typeof(RAC.Operations.GCounter)]; MethodInfo method; List<string> plst; Assert.True(gctypeinfo.methodsList.TryGetValue("g", out method)); Assert.True(gctypeinfo.paramsList.TryGetValue("g", out plst)); Assert.Equal("test", plst[0]); }