public static void Log(ToastLogLevel logLevel, string message, Dictionary <string, string> userFields = null) { if (!IsInitialized()) { return; } if (userFields != null) { foreach (var items in userFields) { if (string.IsNullOrEmpty(items.Key)) { int errorCode = ToastLoggerErrorCode.InvalidUserKey.Code; string errroMessage = "key is null or empty string"; ToastLog.Error(errorCode + " : " + errroMessage); return; } } } string methodName = MethodBase.GetCurrentMethod().Name; string uri = ToastUri.Create(SERVICE_NAME, methodName.ToLower()); MethodCall methodCall = MethodCall.CreateSyncCall(uri); methodCall.AddParameter("level", logLevel.ToString().ToUpper()); methodCall.AddParameter("message", message); if (userFields != null) { methodCall.AddParameter("userFields", userFields); } Dispatcher.Instance.Post(() => ToastNativeSender.SyncSendMessage(methodCall)); }
private static MethodCall GetSetMotdMethodCall(int p_Required, string p_Motd) { MethodCall mc = new MethodCall(Toco.SET_MOTD_METHOD); mc.AddParameter(new Value(tocorre.XmlRpc.Type.XMLRPC_TYPE_INTEGER, p_Required)); mc.AddParameter(new Value(tocorre.XmlRpc.Type.XMLRPC_TYPE_STRING, p_Motd)); return(mc); }
private static MethodCall GetScrapsMethodCall(Int32 p_Nid, Int32 p_UnixTimeStamp, Int32 p_NoteId, Int32 p_Offset, Int32 p_Qty) { MethodCall mc = new MethodCall(Toco.SCRAPS_METHOD); mc.AddParameter(new Value(tocorre.XmlRpc.Type.XMLRPC_TYPE_INTEGER, p_Nid)); mc.AddParameter(new Value(tocorre.XmlRpc.Type.XMLRPC_TYPE_INTEGER, p_UnixTimeStamp)); mc.AddParameter(new Value(tocorre.XmlRpc.Type.XMLRPC_TYPE_INTEGER, p_NoteId)); mc.AddParameter(new Value(tocorre.XmlRpc.Type.XMLRPC_TYPE_INTEGER, p_Qty)); return(mc); }
private static MethodCall GetMsgMethodCall(int p_Nid, int p_UnixTimeStamp, int p_MsgId, int p_Offset, int p_Qty, int p_Folder) { MethodCall mc = new MethodCall(Toco.MSG_METHOD); mc.AddParameter(new Value(tocorre.XmlRpc.Type.XMLRPC_TYPE_INTEGER, p_Nid)); mc.AddParameter(new Value(tocorre.XmlRpc.Type.XMLRPC_TYPE_INTEGER, p_UnixTimeStamp)); mc.AddParameter(new Value(tocorre.XmlRpc.Type.XMLRPC_TYPE_INTEGER, p_MsgId)); mc.AddParameter(new Value(tocorre.XmlRpc.Type.XMLRPC_TYPE_INTEGER, p_Qty)); mc.AddParameter(new Value(tocorre.XmlRpc.Type.XMLRPC_TYPE_INTEGER, p_Folder)); return(mc); }
private static MethodCall GetLoginMethodCall(String p_User, String p_Password, Int32 p_Nid) { // prepare call MethodCall mc = new MethodCall(Toco.LOGIN_METHOD); mc.AddParameter(new Value(tocorre.XmlRpc.Type.XMLRPC_TYPE_STRING, p_User)); mc.AddParameter(new Value(tocorre.XmlRpc.Type.XMLRPC_TYPE_STRING, p_Password)); if (p_Nid > 0) { mc.AddParameter(new Value(tocorre.XmlRpc.Type.XMLRPC_TYPE_INTEGER, p_Nid.ToString())); } return(mc); }
private static MethodCall GetFlushMethodCall(int p_Required) { MethodCall mc = new MethodCall(Toco.FLUSH_METHOD); mc.AddParameter(new Value(tocorre.XmlRpc.Type.XMLRPC_TYPE_INTEGER, p_Required)); return(mc); }
private static MethodCall GetProfileMethodCall(Int32 p_Nid) { // prepare call MethodCall mc = new MethodCall(Toco.PROFILE_METHOD); mc.AddParameter(new Value(tocorre.XmlRpc.Type.XMLRPC_TYPE_INTEGER, p_Nid)); return(mc); }
private static void Report(ToastLogLevel logLevel, string message, string dumpData) { if (!IsInitialized()) { return; } string methodName = "exception"; string uri = ToastUri.Create(SERVICE_NAME, methodName.ToLower()); MethodCall methodCall = MethodCall.CreateSyncCall(uri); methodCall.AddParameter("logType", ToastLoggerType.HANDLED); methodCall.AddParameter("logLevel", logLevel.ToString().ToUpper()); methodCall.AddParameter("message", message); methodCall.AddParameter("dmpData", dumpData); methodCall.AddParameter("userFields", new Dictionary <string, string> { { "Unity", Application.unityVersion } }); Dispatcher.Instance.Post(() => ToastNativeSender.SyncSendMessage(methodCall)); }
public static void Initialize(ToastLoggerConfiguration loggerConfiguration) { if (string.IsNullOrEmpty(loggerConfiguration.AppKey)) { int errorCode = ToastLoggerErrorCode.InvalidUserKey.Code; string errroMessage = "AppKey is null or empty string"; ToastLog.Error(errorCode + " : " + errroMessage); return; } if (_isInitialized) { ToastLog.Warn("ToastLogger has already been initialized."); return; } string methodName = MethodBase.GetCurrentMethod().Name; string uri = ToastUri.Create(SERVICE_NAME, methodName.ToLower()); MethodCall methodCall = MethodCall.CreateSyncCall(uri); methodCall.AddParameter("projectKey", loggerConfiguration.AppKey); methodCall.AddParameter("serviceZone", loggerConfiguration.ServiceZone.ToString().ToUpper()); methodCall.AddParameter("enableCrashReporter", loggerConfiguration.EnableCrashReporter); var result = ToastNativeSender.SyncSendMessage(methodCall); if (result == null || !result.Result.IsSuccessful) { return; } ToastCrashManager.Instance.Initialize( loggerConfiguration.EnableCrashReporter, loggerConfiguration.EnableCrashErrorLog); _isInitialized = true; ToastAuditLog.SendUsageLog(); }
public static void SetUserField(string key, string value) { if (!IsInitialized()) { return; } if ((key == null) || (key == "")) { int errorCode = ToastLoggerErrorCode.InvalidUserKey.Code; string errroMessage = "key is null or empty string"; ToastLog.Error(errorCode + " : " + errroMessage); return; } string methodName = MethodBase.GetCurrentMethod().Name; string uri = ToastUri.Create(SERVICE_NAME, methodName.ToLower()); MethodCall methodCall = MethodCall.CreateSyncCall(uri); methodCall.AddParameter("key", key); methodCall.AddParameter("value", value); Dispatcher.Instance.Post(() => ToastNativeSender.SyncSendMessage(methodCall)); }
// Execute multi :( public List <Tocobject> ExecuteSystemMultiCall() { MethodCall mc = new MethodCall(Toco.SYSTEM_MULTI_CALL_METHOD); // prepare unique parameter with multiple calls Value varray = new Value(tocorre.XmlRpc.Type.XMLRPC_TYPE_ARRAY); foreach (MethodCall mcc in m_MethodCalls) { Value vcall = new Value(tocorre.XmlRpc.Type.XMLRPC_TYPE_STRUCT); vcall.AddToStruct("methodName", new Value(tocorre.XmlRpc.Type.XMLRPC_TYPE_STRING, mcc.method_name)); Value vparams = new Value(tocorre.XmlRpc.Type.XMLRPC_TYPE_ARRAY); foreach (Value param in mcc.parameters) { vparams.AddToArray(param); } vcall.AddToStruct("params", vparams); varray.AddToArray(vcall); } mc.AddParameter(varray); Call c = new Call("http://www.tocorre.com/ext/rpc/rpc_api.php", mc); MethodResponse mr = c.Execute(); // unique return is an array type Value. Each array element has a Value // corresponding to the return value of the nth method call queued List <Tocobject> ret = new List <Tocobject>(); Int32 i = 0; foreach (MethodCall mcc in m_MethodCalls) { Value v = mr.values[0].array_value[i]; switch (mcc.method_name) { case LOGIN_METHOD: if (v.type == tocorre.XmlRpc.Type.XMLRPC_TYPE_ARRAY) { ret.Add(Session.FromValue(v.array_value[0])); } else { ret.Add(new Session(true, v)); } break; case PROFILE_METHOD: if (v.type == tocorre.XmlRpc.Type.XMLRPC_TYPE_ARRAY) { ret.Add(GenericValue.FromValue(v.array_value[0])); } else { ret.Add(new GenericValue(true, v)); } break; case SCRAPS_METHOD: if (v.type == tocorre.XmlRpc.Type.XMLRPC_TYPE_ARRAY) { ret.Add(Scrap.FromValue(v.array_value[0])); } else { ret.Add(new Scrap(true, v)); } break; case MSG_METHOD: if (v.type == tocorre.XmlRpc.Type.XMLRPC_TYPE_ARRAY) { ret.Add(Msgs.FromValue(v.array_value[0])); } else { ret.Add(new Msgs(true, v)); } break; case FLUSH_METHOD: if (v.type == tocorre.XmlRpc.Type.XMLRPC_TYPE_ARRAY) { ret.Add(GenericValue.FromValue(v.array_value[0])); } else { ret.Add(new GenericValue(true, v)); } break; case SET_MOTD_METHOD: if (v.type == tocorre.XmlRpc.Type.XMLRPC_TYPE_ARRAY) { ret.Add(GenericValue.FromValue(v.array_value[0])); } else { ret.Add(new GenericValue(true, v)); } break; default: throw new Exception("Unexpected method name: " + mcc.method_name); } i++; } return(ret); }