예제 #1
0
        public ActionResult DeleteAll(int? id = null, int? id2 = null)
        {
            if (id != null && id2 != null)
            {
                Sensor sensor = gatewayDb.GetSensor(id.Value, id2.Value);

                if (sensor == null)
                    return new HttpNotFoundResult();

                linksDb.DeleteLinksTo(id.Value, id2.Value);

                GatewayAPIController gatewayApi = new GatewayAPIController();
                gatewayApi.UpdateSensorsLinks();

                if (Request.Headers["Referer"].Count > 0)
                    return Redirect(Request.Headers["Referer"].ToString());
                else return RedirectToAction("List");
            }
            else if (RouteData.Values.Count <= 2)
            {
                linksDb.DropLinks();

                GatewayAPIController gatewayApi = new GatewayAPIController();
                gatewayApi.UpdateSensorsLinks();

                if (Request.Headers["Referer"].Count>0)
                    return Redirect(Request.Headers["Referer"].ToString());
                else return RedirectToAction("List");
            }

            return new HttpNotFoundResult();
        }
예제 #2
0
        public ActionResult Delete(int id)
        {
            Node node = gatewayDb.GetNodeByNodeId(id);
            if (node == null)
                return HttpNotFound();

            GatewayAPIController gatewayApi = new GatewayAPIController();
            gatewayApi.DeleteNode(node.nodeId);

            gatewayDb.DeleteNodeByDbId(node.db_Id);

            ISensorsLinksRepository linksDb = SerialController.sensorsLinksDb;
            ISensorsTasksRepository tasksDb = SerialController.sensorsTasksDb;

            foreach (var sensor in node.sensors)
            {
                historyDb.DropSensorHistory(sensor.db_Id);
                linksDb.DeleteLinksTo(sensor.db_Id);
                linksDb.DeleteLinksFrom(sensor.db_Id);
                tasksDb.DeleteTasks(sensor.db_Id);
            }

            gatewayApi.UpdateSensorsTasks();
            gatewayApi.UpdateSensorsLinks();

            return RedirectToAction("Control", "Gateway");
        }
예제 #3
0
        public ActionResult Delete(int id)
        {
            SensorLink link = linksDb.GetLink(id);

            if (link == null)
                return new HttpNotFoundResult();

            linksDb.DeleteLink(id);

            GatewayAPIController gatewayApi = new GatewayAPIController();
            gatewayApi.UpdateSensorsLinks();

            if (Request.Headers["Referer"].Count > 0)
                return Redirect(Request.Headers["Referer"].ToString());
            else return RedirectToAction("List");
        }
예제 #4
0
        public ActionResult Delete(int id)
        {
            SensorTask task = tasksDb.GetTask(id);

            if (task == null)
                return new HttpNotFoundResult();

            tasksDb.DeleteTask(id);

            GatewayAPIController gatewayApi = new GatewayAPIController();
            gatewayApi.UpdateSensorsTasks();

            if (Request.Headers["Referer"].Any())
                return Redirect(Request.Headers["Referer"].ToString());
            else return RedirectToAction("List");
        }
예제 #5
0
        public ActionResult Settings()
        {
            int id = Int32.Parse(Request.Form["nodeId"]);
            Node node = gatewayDb.GetNodeByNodeId(id);
            string nodename = Request.Form["nodename"];
            if (nodename == "")
                nodename = null;
            node.name = nodename;
            foreach (var sensor in node.sensors)
            {

                string sensordescription = Request.Form["sensordescription" + sensor.sensorId];
                if (sensordescription == "")
                    sensordescription = null;
                sensor.description = sensordescription;

                bool storehistory = Request.Form["storehistory" + sensor.sensorId] != "false";
                bool writeeverychange = Request.Form["writeeverychange" + sensor.sensorId] != "false";
                int writeinterval = Int32.Parse(Request.Form["writeinterval" + sensor.sensorId]);
                sensor.storeHistoryEnabled = storehistory;
                sensor.storeHistoryEveryChange = writeeverychange;
                sensor.storeHistoryWithInterval = writeinterval;

                bool invertData = Request.Form["invertData" + sensor.sensorId] != "false";
                bool remapEnabled = Request.Form["remapData" + sensor.sensorId] != "false";
                string remapFromMin = Request.Form["remapFromMin" + sensor.sensorId];
                string remapFromMax = Request.Form["remapFromMax" + sensor.sensorId];
                string remapToMin = Request.Form["remapToMin" + sensor.sensorId];
                string remapToMax = Request.Form["remapToMax" + sensor.sensorId];
                sensor.invertData = invertData;
                sensor.remapEnabled = remapEnabled;
                sensor.remapFromMin = remapFromMin;
                sensor.remapFromMax = remapFromMax;
                sensor.remapToMin = remapToMin;
                sensor.remapToMax = remapToMax;
            }
            gatewayDb.UpdateNodeSettings(node);

            GatewayAPIController gatewayApi = new GatewayAPIController();
            gatewayApi.UpdateNodeSettings(node);

            return RedirectToAction("Control", "Gateway");
            // return View(node);
        }
예제 #6
0
        public ActionResult New(string from, string to)
        {
            string[] args = from.Split('-');
            int fromNodeId = Int32.Parse(args[0]);
            int fromSensorId = Int32.Parse(args[1]);
            SensorDataType fromDataType;
            SensorDataType.TryParse(args[2], true, out fromDataType);

            args = to.Split('-');
            int toNodeId = Int32.Parse(args[0]);
            int toSensorId = Int32.Parse(args[1]);
            SensorDataType toDataType;
            SensorDataType.TryParse(args[2], true, out toDataType);

            Sensor fromSensor = gatewayDb.GetSensor(fromNodeId, fromSensorId);
            Sensor toSensor = gatewayDb.GetSensor(toNodeId, toSensorId);

            if (fromSensor == null || toSensor == null)
                return new HttpNotFoundResult();

            bool linkPossible = CheckLinkPossible(fromSensor, toSensor);
            if (!linkPossible)
            {
                ModelState.AddModelError("", "Link impossible");
                return RedirectToAction("New");
            }

            Node fromNode = gatewayDb.GetNodeByNodeId(fromSensor.nodeId);
            Node toNode = gatewayDb.GetNodeByNodeId(toSensor.nodeId);

            SensorLink link = new SensorLink()
            {
                fromNodeId = fromNodeId,
                fromSensorId = fromSensorId,
                fromDataType = fromDataType,
                fromSensorDbId = fromSensor.db_Id,
                fromSensorDescription = $"{fromNode.GetSimpleName1()} {fromSensor.GetSimpleName1()}",
                toNodeId = toNodeId,
                toSensorId = toSensorId,
                toDataType = toDataType,
                toSensorDbId = toSensor.db_Id,
                toSensorDescription = $"{toNode.GetSimpleName1()} {toSensor.GetSimpleName1()}"
            };

            linksDb.AddLink(link);

            GatewayAPIController gatewayApi = new GatewayAPIController();
            gatewayApi.UpdateSensorsLinks();

            return RedirectToAction("List", new { id = link.toNodeId, id2 = link.toSensorId });
        }
예제 #7
0
        public ActionResult New(SensorTask task)
        {
            Sensor sensor = gatewayDb.GetSensor(task.nodeId, task.sensorId);

            if (sensor == null)
                return new HttpNotFoundResult();

            if (task.isRepeating)
                task.executionValue = task.repeatingBValue;

            tasksDb.AddTask(task);

            GatewayAPIController gatewayApi = new GatewayAPIController();
            gatewayApi.UpdateSensorsTasks();

            return RedirectToAction("List", new { id = task.nodeId, id2 = task.sensorId });
        }
예제 #8
0
        public ActionResult ExecuteNow(int id)
        {
            SensorTask task = tasksDb.GetTask(id);

            if (task == null)
                return new HttpNotFoundResult();

            tasksDb.UpdateTask(task.db_Id, true, false, DateTime.Now, 0);

            GatewayAPIController gatewayApi = new GatewayAPIController();
            gatewayApi.UpdateSensorsTasks();

            if (Request.Headers["Referer"].Any())
                return Redirect(Request.Headers["Referer"].ToString());
            else return RedirectToAction("List");
        }