コード例 #1
0
        public async Task <IActionResult> Update(CreateUpdateSensorViewModel model)
        {
            if (!this.ModelState.IsValid)
            {
                TempData["Error-Message"] = "Oops something went wrong! Try again..";
                return(this.RedirectToAction("Update", "Sensor", new { sensorId = model.SensorId }));
            }
            try
            {
                Validator.ValidateSensorValues(model.MinRangeValue, model.ApiMinRangeValue,
                                               model.MaxRangeValue, model.ApiMaxRangeValue, model.PollingInterval, model.ApiPollingInterval);
            }
            catch (ArgumentOutOfRangeException e)
            {
                TempData["Error-Message"] = e.Message;
                return(this.RedirectToAction("Update", "Sensor", new
                {
                    sensorId = model.SensorId
                }));
            }
            var updatedSensorId = await this.sensorsService.Update(model.SensorId, model.UserId, model.IcbSensorId, model.Name, model.Description,
                                                                   model.PollingInterval, model.IsPublic, model.AlarmOn, model.MinRangeValue, model.MaxRangeValue,
                                                                   model.Longtitude, model.Latitude, model.SwitchOn);

            this.TempData["Success-Message"] = $"You successfully updated your sensor!";

            return(this.RedirectToAction("Details", "Sensor", new { sensorId = updatedSensorId }));
        }
コード例 #2
0
        public async Task <IActionResult> Create(CreateUpdateSensorViewModel model)
        {
            if (!this.ModelState.IsValid)
            {
                TempData["Error-Message"] = "Please enter valid alarm preferences!";
                return(this.RedirectToAction("Create", "Sensor", new
                {
                    icbSensorId = model.IcbSensorId,
                    userId = model.UserId
                }));
            }
            try
            {
                Validator.ValidateSensorValues(model.MinRangeValue, model.ApiMinRangeValue,
                                               model.MaxRangeValue, model.ApiMaxRangeValue, model.PollingInterval, model.ApiPollingInterval);
            }
            catch (ArgumentOutOfRangeException e)
            {
                TempData["Error-Message"] = e.Message;
                return(this.RedirectToAction("Create", "Sensor", new
                {
                    icbSensorId = model.IcbSensorId,
                    userId = model.UserId
                }));
            }

            var createdSensorId = await this.sensorsService.RegisterNewSensor(model.UserId, model.IcbSensorId, model.Name,
                                                                              model.Description, model.PollingInterval, model.IsPublic,
                                                                              model.AlarmOn, model.MinRangeValue, model.MaxRangeValue,
                                                                              model.Longtitude, model.Latitude, model.SwitchOn);

            this.TempData["Success-Message"] = $"You successfully registered a new sensor!";
            return(this.RedirectToAction("MySensors", "Sensor"));
            //return this.RedirectToAction("Details", "Sensor", new { sensorId = createdSensorId });
        }
コード例 #3
0
        public async Task <IActionResult> Create(string icbSensorId)
        {
            // TODO: Better implementation
            var icbSensor = await this.icbSensorsService.GetById(icbSensorId);

            if (icbSensor == null)
            {
                // TODO: Error
                return(this.NotFound());
            }

            var userId = User.GetId();

            var model = new CreateUpdateSensorViewModel()
            {
                IcbSensorId        = icbSensorId,
                PollingInterval    = icbSensor.PollingInterval,
                ApiPollingInterval = icbSensor.PollingInterval,
                UserId             = userId,
                ChoosenSensorModel = icbSensor.Tag.SplitTag()
            };

            if (icbSensor.MeasureType.MeasureUnit == "(true/false)")
            {
                model.IsSwitch = true;
            }
            else
            {
                model.MinRangeValue    = icbSensor.MinRangeValue;
                model.MaxRangeValue    = icbSensor.MaxRangeValue;
                model.ApiMaxRangeValue = icbSensor.MaxRangeValue;
                model.ApiMinRangeValue = icbSensor.MinRangeValue;
            }
            return(View(model));
        }
コード例 #4
0
        public async Task <IActionResult> Update(string sensorId)
        {
            try
            {
                var sensor = await this.sensorsService.GetSensorById(sensorId);

                if (sensor.UserId != User.GetId())
                {
                    TempData["Error-Message"] = "Access denied!";
                    return(RedirectToAction("Index", "Home"));
                }
                var model = new CreateUpdateSensorViewModel()
                {
                    AlarmOn            = sensor.AlarmOn,
                    Description        = sensor.Description,
                    IcbSensorId        = sensor.IcbSensorId,
                    IsPublic           = sensor.IsPublic,
                    Latitude           = sensor.Coordinates.Latitude,
                    Longtitude         = sensor.Coordinates.Longitude,
                    Name               = sensor.Name,
                    PollingInterval    = sensor.PollingInterval,
                    SensorId           = sensor.Id,
                    UserId             = sensor.UserId,
                    ApiPollingInterval = sensor.IcbSensor.PollingInterval,
                    SwitchOn           = sensor.SwitchOn,
                    ChoosenSensorModel = sensor.IcbSensor.Tag.SplitTag()
                };

                if (sensor.IcbSensor.MeasureType.MeasureUnit == "(true/false)")
                {
                    model.IsSwitch = true;
                }
                else
                {
                    model.MinRangeValue    = sensor.MinRangeValue;
                    model.MaxRangeValue    = sensor.MaxRangeValue;
                    model.ApiMaxRangeValue = sensor.IcbSensor.MaxRangeValue;
                    model.ApiMinRangeValue = sensor.IcbSensor.MinRangeValue;
                }
                return(View(model));
            }
            catch (EntityDoesntExistException e)
            {
                TempData["Error-Message"] = e.Message;
                return(this.RedirectToAction("Index", "Home"));
            }
        }