public async Task <Session> JoinSession(string sessionName, string userName) { var response = await FH.Cloud("poker/join", "POST", null, new Dictionary <string, string>() { { "session", sessionName }, { "user", userName } }); if (response.Error != null) { throw response.Error; } _socket.Emit("room-join", () => { }, sessionName); return(JsonConvert.DeserializeObject <Session>(response.RawResponse)); }
void IPDFHelper.CreatePDF(string header, string date, string imageURLstring, string text) { var t = new FH(); unsafe { var pdfDoc = HPDF_Doc.HPDF_New(null, null); } //var t = new SuperNotesWiFi3D.iOS.libharu.FH(); //t.Foo(); throw new NotImplementedException(); }
private async void AuthButton_Click(object sender, RoutedEventArgs e) { var authPolicy = "TestGooglePolicy"; var res = await FH.Auth(authPolicy); if (null == res.Error) { ShowMessage(res.RawResponse); } else { ShowMessage(res.Error.Message); } }
async partial void onAuthCallTouched(UIButton sender) { string authPolicy = "TestGooglePolicy"; FHResponse res = await FH.Auth(authPolicy); if (null == res.Error) { ShowMessage(res.RawResponse); } else { ShowMessage(res.Error.Message); } }
public override async void OnMessageReceived(string from, Bundle data) { if (!ServiceFinder.IsRegistered <IPush>()) { await FHClient.Init(); FH.RegisterPush(DefaultHandleEvent); } var push = ServiceFinder.Resolve <IPush>() as Push; var message = data.GetString("alert"); var messageData = data.KeySet().ToDictionary(key => key, key => data.GetString(key)); (push.Registration as GcmRegistration).OnPushNotification(message, messageData); }
///<summary> ///METODO PARA MODIFICAR LOS VALORES DE CONFIGURAICÓN DEL LA NÓMINA ///USA FILE Y SCREEN, POR LO QUE LO DEJAMOS EN EL CONTROLADOR !!! ///</summary> public static void modificarPass(string pass) { // 1. Modificar pidiendo el nuevo dato try { pass = CH.leerPass("NUEVA CONTRASEÑA"); } catch (Exception ex) { CH.lcdColor("\n" + ex.Message + "\n", ConsoleColor.Red); } FH.grabarValores(ruta, pass, datosBase.maxhoras, datosBase.horasbase, datosBase.maxeuxhora, datosBase.preciojoranda, datosBase.incrementoextra, datosBase.impuestos); }
private async void SayHello(object sender, RoutedEventArgs e) { Response.Text = "Calling Cloud....."; FirePropertyChanged("Response"); var response = await FH.Cloud("hello", "GET", null, new Dictionary <string, string>() { { "hello", HelloTo.Text } }); if (response.Error == null) { Response.Text = (string)response.GetResponseAsDictionary()["msg"]; FirePropertyChanged("Response"); } else { await new MessageDialog(response.Error.Message).ShowAsync(); } }
private async void MBAASAuthButton_Click(object sender, RoutedEventArgs e) { var authPolicy = "LdapTest"; var username = "******"; var password = "******"; var res = await FH.Auth(authPolicy, username, password); if (null == res.Error) { ShowMessage(res.RawResponse); } else { ShowMessage(res.Error.Message); } }
public async void CallCloudAsync() { var response = await FH.Cloud("hello", "GET", null, new Dictionary <string, string> () { { "hello", name.Text } }); if (response.Error == null) { Console.WriteLine("cloudCall - success"); result.Text = (string)response.GetResponseAsDictionary() ["msg"]; } else { Console.WriteLine("cloudCall - fail"); Console.WriteLine(response.Error.Message, response.Error); result.Text = response.Error.Message; } }
static void Main(string[] args) { /*Connection conn = new Connection( * name: "My Example Program", * address: IPAddress.Parse("127.0.0.1"), * rpcPort: 50000, * streamPort: 50001); * Service sc = conn.SpaceCenter(); * Vessel vessel = sc.ActiveVessel; * Orbit orbit = vessel.Orbit; * CelestialBody body = orbit.Body; * * var common_data = new CommonData(conn, sc, body); * Thread common_data_thread = new Thread(() => * { * while (true) * { * if (!common_data.Update()) * break; * Thread.Sleep(100); * } * }); * common_data_thread.Start(); * * KrpcAutoPilot.Control control = new KrpcAutoPilot.Control("1", common_data, conn, sc, vessel); * * while (true) * { * control.UpdateData(); * control.Command.SetTargetDirection(new Vector3d(vessel.Position(body.ReferenceFrame)).Norm()); * control.Command.SetHeadingAngle(0d); * control.Execute(); * Thread.Sleep(100); * }*/ FH fh = new FH(); fh.Start(FH.FocusPart.BOOSTER_NORTH); //Docking docking = new Docking(); //docking.Start("Kerbin空间站", "docking_port_2", "docking_port", 50); //Console.ReadKey(); //Recycle recycle = new Recycle(); //recycle.Start(80d, 2d); }
private async void MBAASButton_Click(object sender, RoutedEventArgs e) { var data = new Dictionary <string, object>(); data.Add("act", "create"); data.Add("type", CollectionName); //create the collection first var createRes = await FH.Mbaas("db", data); ShowMessage(createRes.RawResponse); //read device id var deviceId = GetDeviceId(); //check if it exists data = new Dictionary <string, object>(); data.Add("type", CollectionName); data.Add("act", "list"); var deviceIdField = new Dictionary <string, string>(); deviceIdField.Add("deviceId", deviceId); data.Add("eq", deviceIdField); var listRes = await FH.Mbaas("db", data); ShowMessage(listRes.RawResponse); var listResDic = listRes.GetResponseAsDictionary(); if (Convert.ToInt16(listResDic["count"]) == 0) { data = new Dictionary <string, object>(); data.Add("act", "create"); data.Add("type", CollectionName); data.Add("fields", GetDeviceInfo()); var dataCreateRes = await FH.Mbaas("db", data); ShowMessage(dataCreateRes.RawResponse); } else { ShowMessage("Device is already created!"); } }
async partial void onMbaasCallTouched(UIButton sender) { Dictionary <string, object> data = new Dictionary <string, object>(); data.Add("act", "create"); data.Add("type", COLLECTION_NAME); //create the collection first FHResponse createRes = await FH.Mbaas("db", data); ShowMessage(createRes.RawResponse); //read device id string deviceId = GetDeviceId(); //check if it exists data = new Dictionary <string, object>(); data.Add("type", COLLECTION_NAME); data.Add("act", "list"); Dictionary <string, string> deviceIdField = new Dictionary <string, string>(); deviceIdField.Add("deviceId", deviceId); data.Add("eq", deviceIdField); FHResponse listRes = await FH.Mbaas("db", data); ShowMessage(listRes.RawResponse); IDictionary <string, object> listResDic = listRes.GetResponseAsDictionary(); if (Convert.ToInt16(listResDic["count"]) == 0) { data = new Dictionary <string, object>(); data.Add("act", "create"); data.Add("type", COLLECTION_NAME); data.Add("fields", GetDeviceInfo()); FHResponse dataCreateRes = await FH.Mbaas("db", data); ShowMessage(dataCreateRes.RawResponse); } else { ShowMessage("Device is already created!"); } }
private async void CloudButton_Click(object sender, RoutedEventArgs e) { var data = new Dictionary <string, object>(); data.Add("hello", "world"); string message; var res = await FH.Cloud("hello", "GET", null, data); if (res.StatusCode == HttpStatusCode.OK) { message = (string)res.GetResponseAsDictionary()["msg"]; } else { message = "Error"; } ShowMessage(message); }
async partial void onCloudCallTouched(UIButton sender) { Dictionary <string, object> data = new Dictionary <string, object>(); data.Add("hello", "world"); string message = null; FHResponse res = await FH.Cloud("hello", "GET", null, data); if (res.StatusCode == System.Net.HttpStatusCode.OK) { message = (string)res.GetResponseAsDictionary()["msg"]; } else { message = "Error"; } ShowMessage(message); }
private async Task TestCloud(string method) { var headers = new Dictionary <string, string>(); headers["x-test-header"] = "testheader"; var data = new Dictionary <string, string>(); data["test"] = "test"; var cloudRes = await FH.Cloud("echo", method, headers, data); var cloudResJson = cloudRes.GetResponseAsJObject(); Assert.IsNotNull(cloudResJson["method"]); Assert.IsTrue(method.ToUpper().Equals((string)cloudResJson["method"])); Assert.IsNotNull(cloudResJson["headers"]); Assert.IsNotNull(cloudResJson["body"]); var resHeaders = (JObject)cloudResJson["headers"]; Assert.IsNotNull(resHeaders["x-fh-cuid"]); Assert.IsNotNull(resHeaders["x-test-header"]); Assert.IsTrue("testheader".Equals((string)resHeaders["x-test-header"])); JObject resData = null; if ("GET".Equals(method)) { Assert.IsNotNull(cloudResJson["query"]); resData = (JObject)cloudResJson["query"]; } else { Assert.IsNotNull(cloudResJson["body"]); resData = (JObject)cloudResJson["body"]; } Assert.IsNotNull(resData["test"]); Assert.IsTrue(((string)resData["test"]).Contains("test")); }
public async void TestAct() #endif { var data = new Dictionary <string, string>(); data["test"] = "test"; var actRes = await FH.Act("echo", data); var resJson = actRes.GetResponseAsJObject(); Assert.IsNotNull(resJson["method"]); Assert.IsNotNull(resJson["headers"]); Assert.IsNotNull(resJson["body"]); Assert.IsTrue("POST".Equals((string)resJson["method"])); var headers = (JObject)resJson["headers"]; Assert.IsNotNull(headers["x-fh-cuid"]); var body = (JObject)resJson["body"]; Assert.IsNotNull(body["__fh"]); Assert.IsNotNull(body["test"]); Assert.IsTrue("test".Equals((string)body["test"])); }
public async Task <Session> CreateSession(Session session) { await FH.Cloud("poker", "POST", null, session); return(await JoinSession(session.Name, session.CreatedBy.Name)); }
public async void TestDatasetSync() #endif { //clear db var setupRes = await FH.Cloud(string.Format("/syncTest/{0}", DatasetId), "DELETE", null, null); Assert.IsTrue(HttpStatusCode.OK.Equals(setupRes.StatusCode)); var syncConfig = new FHSyncConfig(); syncConfig.SyncFrequency = 1; syncConfig.AutoSyncLocalUpdates = true; syncConfig.SyncCloud = FHSyncConfig.SyncCloudType.Mbbas; syncConfig.CrashedCountWait = 0; syncConfig.ResendCrashedUpdated = true; //make sure no existing data file exist _metaDataFilePath = FHSyncUtils.GetDataFilePath(DatasetId, ".sync.json"); _dataFilePath = FHSyncUtils.GetDataFilePath(DatasetId, ".data.json"); _pendingFilePath = FHSyncUtils.GetDataFilePath(DatasetId, ".pendings.json"); TestUtils.DeleteFileIfExists(_metaDataFilePath); TestUtils.DeleteFileIfExists(_dataFilePath); TestUtils.DeleteFileIfExists(_pendingFilePath); Assert.IsFalse(File.Exists(_metaDataFilePath)); Assert.IsFalse(File.Exists(_dataFilePath)); Assert.IsFalse(File.Exists(_pendingFilePath)); var tasksDataset = FHSyncDataset <TaskModel> .Build <TaskModel>(DatasetId, syncConfig, null, null); //since the dataset is saved on creation, make sure the data files exist TestUtils.AssertFileExists(_metaDataFilePath); TestUtils.AssertFileExists(_dataFilePath); TestUtils.AssertFileExists(_pendingFilePath); //Try to create a new Task var taskName = "task1"; var task = new TaskModel { TaksName = taskName, Completed = false }; task = tasksDataset.Create(task); var taskId = task.UID; Debug.WriteLine("Created Task Id = {0}", taskId); Assert.IsNotNull(taskId); //Now there should be one pending record var pendings = tasksDataset.GetPendingRecords(); var pendingRecordsCount = pendings.List().Count; Assert.AreEqual(1, pendingRecordsCount); var taskRead = tasksDataset.Read(taskId); Assert.IsNotNull(taskRead); Assert.IsTrue(taskRead.TaksName.Equals(taskName)); Assert.IsTrue(tasksDataset.ShouldSync()); var updatedTaskName = "updatedTask1"; task.TaksName = updatedTaskName; tasksDataset.Update(task); //verify data is updated var readUpdated = tasksDataset.Read(taskId); Assert.IsNotNull(readUpdated); Assert.IsTrue(readUpdated.TaksName.Equals(updatedTaskName)); //test data list var tasks = tasksDataset.List(); Assert.AreEqual(1, tasks.Count); var listedTask = tasks[0]; Assert.IsTrue(listedTask.TaksName.Equals(updatedTaskName)); Assert.IsTrue(listedTask.Completed == false); Assert.IsTrue(listedTask.UID.Equals(taskId)); pendings = tasksDataset.GetPendingRecords(); var pendingsList = pendings.List(); //updating an existing pending, so there should be still only 1 pending record Assert.AreEqual(1, pendingsList.Count); var pending = pendingsList.First().Value; //verify the pendingRecord's postData is the new updated data var postData = pending.PostData; Assert.IsTrue(updatedTaskName.Equals(postData.Data.TaksName)); //run the syncLoop await tasksDataset.StartSyncLoop(); //verify the data is created in the remote db var cloudRes = await FH.Cloud(string.Format("/syncTest/{0}", DatasetId), "GET", null, null); Debug.WriteLine("Got response " + cloudRes.RawResponse); Assert.IsNull(cloudRes.Error); var dbData = cloudRes.GetResponseAsJObject(); Assert.AreEqual(1, (int)dbData["count"]); var taskNameInDb = (string)dbData["list"][0]["fields"]["taskName"]; Assert.IsTrue(taskNameInDb.Equals(updatedTaskName)); //there should be no pending data pendings = tasksDataset.GetPendingRecords(); Assert.AreEqual(0, pendings.List().Count); var newTaskUid = (string)dbData["list"][0]["guid"]; Assert.IsFalse(newTaskUid.Equals(taskId)); var tasklistAfterUpdate = tasksDataset.List(); Debug.WriteLine(tasklistAfterUpdate[0].ToString()); //since the data is now created in db, the uid should be updated var readUpdatedAfterSync = tasksDataset.Read(newTaskUid); Assert.IsNotNull(readUpdatedAfterSync); Debug.WriteLine("readUpdatedAfterSync = " + readUpdatedAfterSync); //create a new record in remote db var taskToCreate = new TaskModel { TaksName = "anotherTask", Completed = false }; var createRecordReq = await FH.Cloud(string.Format("/syncTest/{0}", DatasetId), "POST", null, taskToCreate); Debug.WriteLine("Got response for creating new record: {0}", createRecordReq.RawResponse); Assert.IsNull(createRecordReq.Error); Thread.Sleep(1500); Assert.IsTrue(tasksDataset.ShouldSync()); //run a sync loop await tasksDataset.StartSyncLoop(); Thread.Sleep(9000); await tasksDataset.StartSyncLoop(); //now we should see the new record is created locally var updatedTaskList = tasksDataset.List(); Assert.AreEqual(2, updatedTaskList.Count); Debug.WriteLine("updatedTaskList[0] = " + updatedTaskList[0]); Debug.WriteLine("updatedTaskList[1] = " + updatedTaskList[1]); //verify that the saved files can be loaded again and will construct the same dataset var anotherDataset = FHSyncDataset <TaskModel> .Build <TaskModel>(DatasetId, syncConfig, null, null); Assert.IsNotNull(anotherDataset.HashValue); var tasksListInAnotherDataset = anotherDataset.List(); Assert.AreEqual(2, tasksListInAnotherDataset.Count); foreach (var taskInAnotherDataset in tasksListInAnotherDataset) { Assert.IsNotNull(taskInAnotherDataset.UID); Assert.IsTrue(taskInAnotherDataset.TaksName.Equals("updatedTask1") || taskInAnotherDataset.TaksName.Equals("anotherTask")); } //test some failure cases var taskToUpdate = updatedTaskList[0]; taskToUpdate.Completed = true; tasksDataset.Update(taskToUpdate); //make sure the next syncLoop will fail var setFailureRes = await FH.Cloud("/setFailure/true", "GET", null, null); Assert.IsNull(setFailureRes.Error); Assert.IsTrue((bool)setFailureRes.GetResponseAsJObject()["current"]); //run the syncloop again, this time it will fail await tasksDataset.StartSyncLoop(); pendings = tasksDataset.GetPendingRecords(); Assert.AreEqual(1, pendings.List().Count); var pendingRecord = pendings.List().Values.First(); Assert.IsTrue(pendingRecord.Crashed); setFailureRes = await FH.Cloud("/setFailure/false", "GET", null, null); Assert.IsNull(setFailureRes.Error); Assert.IsFalse((bool)setFailureRes.GetResponseAsJObject()["current"]); //run another sync loop, this time there will be no pendings sent as the current update is crashed await tasksDataset.StartSyncLoop(); //at the end of last loop, since we set the crashCountWait to be 0, the updates should be marked as not-crashed and will be sent in next loop await tasksDataset.StartSyncLoop(); //there should be no more pendings pendings = tasksDataset.GetPendingRecords(); Assert.AreEqual(0, pendings.List().Count); //verify the update is sent to the cloud var verifyUpdateRes = await FH.Cloud(string.Format("/syncTest/{0}/{1}", DatasetId, taskToUpdate.UID), "GET", null, null); var taskInDBJson = verifyUpdateRes.GetResponseAsJObject(); Assert.IsTrue((bool)taskInDBJson["fields"]["completed"]); }
public void TestInit() { var host = FH.GetCloudHost(); Assert.IsTrue(host.Contains("http://192.168.28.34:8001")); }
public async void TestFHSyncClient() #endif { //clear db var setupRes = await FH.Cloud(string.Format("/syncTest/{0}", DATASET_ID), "DELETE", null, null); Assert.IsTrue(HttpStatusCode.OK.Equals(setupRes.StatusCode)); var syncConfig = new FHSyncConfig(); syncConfig.SyncActive = false; syncConfig.SyncFrequency = 1; syncConfig.AutoSyncLocalUpdates = true; syncConfig.SyncCloud = FHSyncConfig.SyncCloudType.Mbbas; //make sure no existing data file exist metaDataFilePath = FHSyncUtils.GetDataFilePath(DATASET_ID, ".sync.json"); dataFilePath = FHSyncUtils.GetDataFilePath(DATASET_ID, ".data.json"); pendingFilePath = FHSyncUtils.GetDataFilePath(DATASET_ID, ".pendings.json"); TestUtils.DeleteFileIfExists(metaDataFilePath); TestUtils.DeleteFileIfExists(dataFilePath); TestUtils.DeleteFileIfExists(pendingFilePath); Assert.IsFalse(File.Exists(metaDataFilePath)); Assert.IsFalse(File.Exists(dataFilePath)); Assert.IsFalse(File.Exists(pendingFilePath)); syncClient = FHSyncClient.GetInstance(); syncClient.Initialise(syncConfig); syncClient.Manage <TaskModel>(DATASET_ID, syncConfig, null); var syncStarted = false; var syncCompleted = false; syncClient.SyncStarted += (object sender, FHSyncNotificationEventArgs e) => { if (e.DatasetId.Equals(DATASET_ID)) { syncStarted = true; } }; syncClient.SyncCompleted += (object sender, FHSyncNotificationEventArgs e) => { if (e.DatasetId.Equals(DATASET_ID)) { syncCompleted = true; } }; var tasks = syncClient.List <TaskModel>(DATASET_ID); Assert.AreEqual(0, tasks.Count); var newTask = new TaskModel { TaksName = "task1", Completed = false }; newTask = syncClient.Create(DATASET_ID, newTask); //syncConfig.SyncActive = true; Assert.IsNotNull(newTask.UID); syncClient.ForceSync <TaskModel>(DATASET_ID); Thread.Sleep(2000); var cloudRes = await FH.Cloud(string.Format("/syncTest/{0}", DATASET_ID), "GET", null, null); Assert.IsNull(cloudRes.Error); var dbData = cloudRes.GetResponseAsJObject(); Assert.AreEqual(1, (int)dbData["count"]); var taskNameInDb = (string)dbData["list"][0]["fields"]["taskName"]; Assert.IsTrue(taskNameInDb.Equals("task1")); Assert.IsTrue(syncStarted); Assert.IsTrue(syncCompleted); syncClient.StopAll(); }
public void SetUp() { FHClient.Init(); FH.SetLogLevel(1); }
/// <summary> /// Initialise the FeedHenry SDK. This should be called before any other API functions are invoked. Usually this should be called after the app finish intialising. /// </summary> /// <example> /// <code> /// protected async override void OnCreate (Bundle bundle) /// { /// //other initialisation work /// await FHClient.Init(); /// } /// </code> /// </example> /// <returns>If Init is success or not</returns> /// <exception cref="FHException"></exception> public new static async Task <bool> Init() { RegisterServices(); return(await FH.Init()); }
/// <summary> /// Procedimiento para modificar los valores de configuración por defecto de las nóminas. /// Usa tanto file.io como consosole.writre por lo que lo dejaremos de momento EN EL CONTROLADOR!!! /// </summary> public static void modificarValores() { // 1. Listar los valores // 2. Elegir uno // 3. Modificar pidiendo el nuevo dato int opcion; bool salir; byte formato; salir = false; // LOS MODIFICAMOS EN EL OBJETO DIRECTAMENTE do { try { InterfazAdministracion.listarDatos(datosBase.maxhoras, datosBase.horasbase, datosBase.maxeuxhora, datosBase.preciojoranda, datosBase.incrementoextra, datosBase.impuestos); opcion = CH.leerOpcionMsg(6, "Introduce el número del valor a modificar"); switch (opcion) { case 1: datosBase.maxhoras = CH.leerNumero("NUEVO MAXIMO HORAS"); salir = true; break; case 2: datosBase.horasbase = CH.leerNumero("NUEVO HORAS SALARIO BASE"); salir = true; break; case 3: datosBase.maxeuxhora = CH.leerFloat("EUROS MAXIMOS POR HORA"); salir = true; break; case 4: datosBase.preciojoranda = CH.leerFloat("PRECIO JORNADA"); salir = true; break; case 5: datosBase.incrementoextra = CH.leerFloat("FACTOR EXTRA"); salir = true; break; case 6: datosBase.impuestos = CH.leerFloat("PORCENTAJE DE IMPUESTOS"); salir = true; break; } // LOS VOLCAMOS DEL OBJETO AL FICHERO DE DATOS DE CONFIGURACION. // PEDIMOS EL FORMATO Y USAMOS UNO U OTRO. USA FILEHELPER.CLASS > FH!! formato = FH.pedirFormato(); switch (formato) { case (1): // FORMATO TEXTO FH.grabarValores(ruta, pass, datosBase.maxhoras, datosBase.horasbase, datosBase.maxeuxhora, datosBase.preciojoranda, datosBase.incrementoextra, datosBase.impuestos); break; case (2): // FORMATO BINARIO FH.grabarValoresBinary(rutabin, pass, datosBase.maxhoras, datosBase.horasbase, datosBase.maxeuxhora, datosBase.preciojoranda, datosBase.incrementoextra, datosBase.impuestos); break; } } catch (Exception ex) { CH.lcdColor("!> ERROR: " + ex.Message, ConsoleColor.Red); } } while (!salir); }
static void Main(string[] args) { Random N = new Random(); int n; Console.Write("需要的题目数为:"); n = int.Parse(Console.ReadLine()); //题目的输出 for (int i = 0; i < n; i++) { int fuhao_1 = N.Next(1, 5); int fuhao_2 = N.Next(1, 5); FH FUHAO = new FH(); List <int> TIMU = new List <int>(); int timu = N.Next(2, 4); for (int j = 0; j < timu; j++) { TIMU.Add(N.Next(1, 101)); //运用随机数随机出题目所需的数字 } if (TIMU.Count == 2) //当题目中数字个数为两个的处理 { if (fuhao_1 == 4) //排除除法中出现小数的情况,让其重新随机 { while (TIMU[0] % TIMU[1] != 0) { TIMU[0] = N.Next(1, 101); TIMU[1] = N.Next(1, 101); } } Console.WriteLine(TIMU[0] + " " + FUHAO.fuhao(fuhao_1) + " " + TIMU[1] + " " + "="); //两个数的式子运算答案 if (fuhao_1 == 1) { Console.WriteLine("答案为:" + (TIMU[0] + TIMU[1])); } if (fuhao_1 == 2) { Console.WriteLine("答案为:" + (TIMU[0] - TIMU[1])); } if (fuhao_1 == 3) { Console.WriteLine("答案为:" + (TIMU[0] * TIMU[1])); } if (fuhao_1 == 4) { Console.WriteLine("答案为:" + (TIMU[0] / TIMU[1])); } } if (TIMU.Count == 3) //当题目中数字个数为三个的处理 { if (fuhao_1 == 4) //排除第一个运算符为除法中出现小数的情况,让其重新随机 { while (TIMU[0] % TIMU[1] != 0) { TIMU[0] = N.Next(1, 101); TIMU[1] = N.Next(1, 101); } } if (fuhao_2 == 4) { while (TIMU[1] % TIMU[2] != 0) //排除第二个运算符为除法中出现小数的情况,让其重新随机 { TIMU[1] = N.Next(1, 101); TIMU[2] = N.Next(1, 101); } } Console.WriteLine(TIMU[0] + " " + FUHAO.fuhao(fuhao_1) + " " + TIMU[1] + " " + FUHAO.fuhao(fuhao_2) + " " + TIMU[2] + " " + "="); //三个数的式子运算答案 if (fuhao_1 == 1) { if (fuhao_2 == 1) { Console.WriteLine("答案为:" + (TIMU[0] + TIMU[1] + TIMU[2])); } if (fuhao_2 == 2) { Console.WriteLine("答案为:" + (TIMU[0] + TIMU[1] - TIMU[2])); } if (fuhao_2 == 3) { Console.WriteLine("答案为:" + (TIMU[0] + TIMU[1] * TIMU[2])); } if (fuhao_2 == 4) { Console.WriteLine("答案为:" + (TIMU[0] + TIMU[1] / TIMU[2])); } } if (fuhao_1 == 2) { if (fuhao_2 == 1) { Console.WriteLine("答案为:" + (TIMU[0] - TIMU[1] + TIMU[2])); } if (fuhao_2 == 2) { Console.WriteLine("答案为:" + (TIMU[0] - TIMU[1] - TIMU[2])); } if (fuhao_2 == 3) { Console.WriteLine("答案为:" + (TIMU[0] - TIMU[1] * TIMU[2])); } if (fuhao_2 == 4) { Console.WriteLine("答案为:" + (TIMU[0] - TIMU[1] / TIMU[2])); } } if (fuhao_1 == 3) { if (fuhao_2 == 1) { Console.WriteLine("答案为:" + (TIMU[0] * TIMU[1] + TIMU[2])); } if (fuhao_2 == 2) { Console.WriteLine("答案为:" + (TIMU[0] * TIMU[1] - TIMU[2])); } if (fuhao_2 == 3) { Console.WriteLine("答案为:" + (TIMU[0] * TIMU[1] * TIMU[2])); } if (fuhao_2 == 4) { Console.WriteLine("答案为:" + (TIMU[0] * TIMU[1] / TIMU[2])); } } if (fuhao_1 == 4) { if (fuhao_2 == 1) { Console.WriteLine("答案为:" + (TIMU[0] / TIMU[1] + TIMU[2])); } if (fuhao_2 == 2) { Console.WriteLine("答案为:" + (TIMU[0] / TIMU[1] - TIMU[2])); } if (fuhao_2 == 3) { Console.WriteLine("答案为:" + (TIMU[0] / TIMU[1] * TIMU[2])); } if (fuhao_2 == 4) { Console.WriteLine("答案为:" + (TIMU[0] / TIMU[1] / TIMU[2])); } } } } }
/// <summary> /// Get the default request parameters /// </summary> /// <returns></returns> protected IDictionary <string, object> GetDefaultParams() { return(FH.GetDefaultParams()); }
protected async override void OnCreate(Bundle bundle) { base.OnCreate(bundle); FH.SetLogLevel((int)LogService.LogLevels.DEBUG); //use ModernHttpClient FHHttpClientFactory.Get = (() => new HttpClient(new OkHttpNetworkHandler())); // Set our view from the "main" layout resource SetContentView(Resource.Layout.Main); await FHClient.Init(); ShowMessage("App Ready!"); Button cloudButton = (Button)FindViewById(Resource.Id.button1); Button authButton = (Button)FindViewById(Resource.Id.button2); Button mbaasButton = (Button)FindViewById(Resource.Id.button3); cloudButton.Click += async(object sender, EventArgs e) => { Dictionary <string, object> data = new Dictionary <string, object>(); data.Add("hello", "world"); string message = null; FHResponse res = await FH.Cloud("hello", "GET", null, data); if (res.StatusCode == System.Net.HttpStatusCode.OK) { message = (string)res.GetResponseAsDictionary()["msg"]; } else { message = "Error"; } ShowMessage(message); }; authButton.Click += async(object sender, EventArgs e) => { string authPolicy = "TestGooglePolicy"; FHResponse res = await FH.Auth(authPolicy); ShowMessage(res.RawResponse); }; mbaasButton.Click += async(object sender, EventArgs e) => { Dictionary <string, object> data = new Dictionary <string, object>(); data.Add("act", "create"); data.Add("type", COLLECTION_NAME); //create the collection first FHResponse createRes = await FH.Mbaas("db", data); ShowMessage(createRes.RawResponse); //read device id string deviceId = GetDeviceId(); //check if it exists data = new Dictionary <string, object>(); data.Add("type", COLLECTION_NAME); data.Add("act", "list"); Dictionary <string, string> deviceIdField = new Dictionary <string, string>(); deviceIdField.Add("deviceId", deviceId); data.Add("eq", deviceIdField); FHResponse listRes = await FH.Mbaas("db", data); ShowMessage(listRes.RawResponse); IDictionary <string, object> listResDic = listRes.GetResponseAsDictionary(); if (Convert.ToInt16(listResDic["count"]) == 0) { data = new Dictionary <string, object>(); data.Add("act", "create"); data.Add("type", COLLECTION_NAME); data.Add("fields", GetDeviceInfo()); FHResponse dataCreateRes = await FH.Mbaas("db", data); ShowMessage(dataCreateRes.RawResponse); } else { ShowMessage("Device is already created!"); } }; }