Esempio n. 1
0
        public IActionResult UpdateForm(IFormCollection formCollection)
        {
            var     sensorID   = int.Parse(formCollection["SensorID"].FirstOrDefault());
            var     sensorType = formCollection["SensorType"].FirstOrDefault();
            ISensor sensor     = null;
            var     type       = SailbotContext.GetSensorType(sensorType);

            switch (sensorType)
            {
            case "Wind":
                sensor = new SensorManager <Wind>(context).GetSensor(sensorID);
                break;

            case "WinchMotor":
                sensor = new SensorManager <WinchMotor>(context).GetSensor(sensorID);
                break;

            case "RudderMotor":
                sensor = new SensorManager <RudderMotor>(context).GetSensor(sensorID);
                break;

            case "GPS":
                sensor = new SensorManager <GPS>(context).GetSensor(sensorID);
                break;

            case "BoomAngle":
                sensor = new SensorManager <BoomAngle>(context).GetSensor(sensorID);
                break;

            case "BMS":
                sensor = new SensorManager <BMS>(context).GetSensor(sensorID);
                break;

            case "Accelerometer":
                sensor = new SensorManager <Accelerometer>(context).GetSensor(sensorID);
                break;

            default:
                break;
            }

            var modifiableColumnManager = new ModifiableColumnManager(context);
            var columns = modifiableColumnManager.GetModifiableColumns(sensorType);

            foreach (var column in columns)
            {
                var newValue = formCollection[column].FirstOrDefault();
                var property = type.GetProperty(column);
                property.SetValue(sensor, Convert.ChangeType(newValue, property.PropertyType), null);
            }

            context.SaveChanges();

            return(RedirectToAction("Sensor", new { type = sensorType }));
        }
Esempio n. 2
0
        public IActionResult GetUpdateForm(string type, int sensorID)
        {
            var     modifiableColumnManager = new ModifiableColumnManager(context);
            ISensor sensor = null;

            switch (type)
            {
            case "Wind":
                sensor = new SensorManager <Wind>(context).GetSensor(sensorID);
                break;

            case "WinchMotor":
                sensor = new SensorManager <WinchMotor>(context).GetSensor(sensorID);
                break;

            case "RudderMotor":
                sensor = new SensorManager <RudderMotor>(context).GetSensor(sensorID);
                break;

            case "GPS":
                sensor = new SensorManager <GPS>(context).GetSensor(sensorID);
                break;

            case "BoomAngle":
                sensor = new SensorManager <BoomAngle>(context).GetSensor(sensorID);
                break;

            case "BMS":
                sensor = new SensorManager <BMS>(context).GetSensor(sensorID);
                break;

            case "Accelerometer":
                sensor = new SensorManager <Accelerometer>(context).GetSensor(sensorID);
                break;

            default:
                break;
            }

            var model = new SensorFormViewModel
            {
                Sensor  = sensor,
                Type    = SailbotContext.GetSensorType(type),
                Columns = modifiableColumnManager.GetModifiableColumns(type)
            };

            return(PartialView("../Boat/SensorDetail/SensorUpdate", model));
        }