コード例 #1
0
        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));
        }
コード例 #2
0
        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();
        }
コード例 #3
0
        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);
            }
        }
コード例 #4
0
        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);
            }
        }
コード例 #5
0
        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);
        }
コード例 #6
0
        ///<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);
        }
コード例 #7
0
        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();
            }
        }
コード例 #8
0
        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);
            }
        }
コード例 #9
0
        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;
            }
        }
コード例 #10
0
        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);
        }
コード例 #11
0
        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!");
            }
        }
コード例 #12
0
        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!");
            }
        }
コード例 #13
0
        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);
        }
コード例 #14
0
        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);
        }
コード例 #15
0
        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"));
        }
コード例 #16
0
        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"]));
        }
コード例 #17
0
        public async Task <Session> CreateSession(Session session)
        {
            await FH.Cloud("poker", "POST", null, session);

            return(await JoinSession(session.Name, session.CreatedBy.Name));
        }
コード例 #18
0
        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"]);
        }
コード例 #19
0
        public void TestInit()
        {
            var host = FH.GetCloudHost();

            Assert.IsTrue(host.Contains("http://192.168.28.34:8001"));
        }
コード例 #20
0
        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();
        }
コード例 #21
0
 public void SetUp()
 {
     FHClient.Init();
     FH.SetLogLevel(1);
 }
コード例 #22
0
 /// <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());
 }
コード例 #23
0
        /// <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);
        }
コード例 #24
0
        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]));
                        }
                    }
                }
            }
        }
コード例 #25
0
 /// <summary>
 ///     Get the default request parameters
 /// </summary>
 /// <returns></returns>
 protected IDictionary <string, object> GetDefaultParams()
 {
     return(FH.GetDefaultParams());
 }
コード例 #26
0
        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!");
                }
            };
        }