Пример #1
0
        /// <summary>
        /// Deserializes a json object into a Device object.
        /// </summary>
        /// <param name="jT"></param>
        /// <param name="serverInteractor"></param>
        /// <returns>A Device Object</returns>
        public Device DeserializeDevice(JToken jT, HestiaServerInteractor serverInteractor)
        {
            // get id, name and type
            string id   = jT.Value <string>("deviceId");
            string name = jT.Value <string>("name");
            string type = jT.Value <string>("type");

            // get activators
            JToken                activators            = jT.SelectToken("activators");
            List <Activator>      activatorList         = new List <Activator>();
            ActivatorDeserializer activatorDeserializer = new ActivatorDeserializer();

            foreach (JToken activator in activators)
            {
                activatorList.Add(activatorDeserializer.DeserializeActivator(activator));
            }

            Device device = new Device(id, name, type, activatorList, serverInteractor);

            foreach (Activator activator in activatorList)
            {
                activator.Device = device;
            }

            return(device);
        }
 public void SetServerInteractor()
 {
     NetworkHandler dummyNetworkHandler = new NetworkHandler(address);
     HestiaServerInteractor dummyServerInteractor = new HestiaServerInteractor(dummyNetworkHandler);
     dummyServer.Interactor = dummyServerInteractor;
     Assert.IsTrue(dummyServer.Interactor.Equals(dummyServerInteractor));
 }
Пример #3
0
        public void SetUpActivators()
        {
            networkHandler   = new NetworkHandler(dummyAddress);
            serverInteractor = new HestiaServerInteractor(networkHandler);
            device           = new Device("1234", "nice_device", "light", new List <Activator>(), serverInteractor);

            boolId             = "123";
            boolName           = "dummyBoolName";
            boolRank           = 0;
            boolRawState       = false;
            boolStateType      = "bool";
            boolActivatorState = new ActivatorState(boolRawState, boolStateType);
            boolActivator      = new Activator(boolId, boolName, boolRank, boolActivatorState)
            {
                Device = device
            };

            floatId             = "123456";
            floatName           = "dummyFloatName";
            floatRank           = 1;
            floatRawState       = 0.5f;
            floatStateType      = "float";
            floatActivatorState = new ActivatorState(floatRawState, floatStateType);
            floatActivator      = new Activator(floatId, floatName, floatRank, floatActivatorState)
            {
                Device = device
            };

            Assert.IsNotNull(boolActivator);
            Assert.IsNotNull(floatActivator);
        }
 public void GetServerInteractor()
 {
     NetworkHandler dummyNetworkHandler = new NetworkHandler(address);
     HestiaServerInteractor dummyServerInteractor = new HestiaServerInteractor(dummyNetworkHandler);
     dummyServer.Interactor = dummyServerInteractor;
     HestiaServerInteractor testInteractor = dummyServer.Interactor;
     Assert.IsTrue(testInteractor.NetworkHandler.Address == dummyServer.Interactor.NetworkHandler.Address);
 }
Пример #5
0
        public void SetUpHestiaServerInteractor()
        {
            dummyNetworkHandler         = new NetworkHandler(address);
            dummyServerInteractorLocal  = new HestiaServerInteractor(dummyNetworkHandler);
            dummyServerInteractorRemote = new HestiaServerInteractor(dummyNetworkHandler, dummyServerId);

            Assert.IsNotNull(dummyServerInteractorLocal);
            Assert.IsNotNull(dummyServerInteractorRemote);
        }
        public void SetUp()
        {
            string         dummyAddress   = "https://0.0.0.0:1000";
            NetworkHandler networkHandler = new NetworkHandler(dummyAddress);

            serverInteractor = new HestiaServerInteractor(networkHandler);

            jsonDevice  = JToken.Parse(jsonDeviceString);
            jsonDevices = JToken.Parse(jsonDevicesString);
        }
Пример #7
0
        /// <summary>
        /// Deserializes a json object into a list of Device objects.
        /// </summary>
        /// <param name="devices"></param>
        /// <param name="serverInteractor"></param>
        /// <returns>A list of Device objects</returns>
        public List <Device> DeserializeDevices(JToken devices, HestiaServerInteractor serverInteractor)
        {
            List <Device> deviceList = new List <Device>();

            foreach (JToken device in devices)
            {
                deviceList.Add(DeserializeDevice(device, serverInteractor));
            }

            return(deviceList);
        }
Пример #8
0
        public void SetAndGetServerInteractorTest()
        {
            Assert.AreEqual(serverInteractor, device.ServerInteractor);

            string                 newAddress          = "https://2.2.2.2:2000";
            NetworkHandler         newNetworkHandler   = new NetworkHandler(newAddress);
            HestiaServerInteractor newServerInteractor = new HestiaServerInteractor(newNetworkHandler);

            device.ServerInteractor = newServerInteractor;

            Assert.AreEqual(newServerInteractor, device.ServerInteractor);
        }
Пример #9
0
        /// <summary>
        /// Checks if a hestia server exists.
        /// </summary>
        /// <param name="address"></param>
        /// <returns>True or false</returns>
        public static bool Check(string address)
        {
            HestiaServerInteractor interactor = new HestiaServerInteractor(new NetworkHandler(address));

            try
            {
                interactor.GetDevices();
                return(true);
            }
            catch (ServerInteractionException ex)
            {
                Console.WriteLine("No such server exists");
                Console.WriteLine(ex);
                return(false);
            }
        }
        /// <summary>
        /// Deserializes a json object into a HestiaServer object.
        /// </summary>
        /// <param name="jsonServer"></param>
        /// <param name="networkHandler"></param>
        /// <returns>A HestiaServer object</returns>
        public HestiaServer DeserializeServer(JToken jsonServer, NetworkHandler networkHandler)
        {
            string id      = jsonServer.Value <string>("server_id");
            string name    = jsonServer.Value <string>("server_name");
            string address = jsonServer.Value <string>("server_address");
            int    port    = jsonServer.Value <int>("server_port");
            HestiaServerInteractor interactor = new HestiaServerInteractor(networkHandler, id);

            HestiaServer server = new HestiaServer(false, interactor)
            {
                Id      = id,
                Name    = name,
                Address = address,
                Port    = port
            };

            return(server);
        }
        /// <summary>
        /// Determine if the next screen should be loaded. Server discovery should always be loaded.
        /// The devices main screen should only be loaded if the Server is valid.
        /// </summary>
        /// <param name="segueIdentifier"></param>
        /// <param name="sender"></param>
        /// <returns></returns>
        public override bool ShouldPerformSegue(string segueIdentifier, NSObject sender)
        {
            if (segueIdentifier == strings.segueToServerDiscovery)
            {
                return(true);
            }

            bool validIp = false;

            try
            {
                string address = strings.defaultPrefix + newIP.Text + ":" + int.Parse(strings.defaultPort);
                validIp = PingServer.Check(address);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
                WarningMessage.Display("Could not connect to server", "Invalid server information", this);
                connectButton.Selected = false;
                return(false);
            }

            if (validIp)
            {
                Globals.ServerName = newServerName.Text;
                Globals.Address    = strings.defaultPrefix + newIP.Text + ":" + strings.defaultPort;
                HestiaServerInteractor serverInteractor = new HestiaServerInteractor(new NetworkHandler(Globals.Address));
                Globals.LocalServerinteractor = serverInteractor;

                userDefaults.SetString(newServerName.Text, strings.defaultsServerNameHestia);
                userDefaults.SetString(newIP.Text, strings.defaultsIpHestia);

                return(true);
            }

            WarningMessage.Display("Could not connect to server", "Invalid server information", this);
            connectButton.Selected = false;
            return(false);
        }
Пример #12
0
        public void SetUpDevice()
        {
            ActivatorState activatorState = new ActivatorState(false, "bool");
            string         activatorId    = "1234";
            string         activatorName  = "bob";
            int            activatorRank  = 0;

            activator = new Activator(activatorId, activatorName, activatorRank, activatorState);

            activators = new List <Activator>
            {
                activator
            };

            networkHandler   = new NetworkHandler(dummyAddress);
            serverInteractor = new HestiaServerInteractor(networkHandler);

            device = new Device(deviceId, deviceName, type, activators, serverInteractor);

            activator.Device = device;

            Assert.IsNotNull(device);
        }
Пример #13
0
 public HestiaServer(bool selected, HestiaServerInteractor interactor)
 {
     Interactor = interactor;
     Selected   = selected;
 }