public async Task <ActionResult> EditDeviceProperties(string deviceId)
        {
            EditDevicePropertiesModel model;
            IEnumerable <DevicePropertyValueModel> propValModels;

            model = new EditDevicePropertiesModel
            {
                DevicePropertyValueModels = new List <DevicePropertyValueModel>()
            };

            var device = await _deviceLogic.GetDeviceAsync(deviceId);

            if (device != null)
            {
                if (device.DeviceProperties == null)
                {
                    throw new DeviceRequiredPropertyNotFoundException("Required DeviceProperties not found");
                }

                model.DeviceId = device.DeviceProperties.DeviceID;
                propValModels  = _deviceLogic.ExtractDevicePropertyValuesModels(device);
                propValModels  = ApplyDevicePropertyOrdering(propValModels);

                model.DevicePropertyValueModels.AddRange(propValModels);
            }

            return(View("EditDeviceProperties", model));
        }
        private async Task <ActionResult> Edit(EditDevicePropertiesModel model)
        {
            if (model != null)
            {
                var device = await _deviceLogic.GetDeviceAsync(model.DeviceId);

                if (device != null)
                {
                    _deviceLogic.ApplyDevicePropertyValueModels(device, model.DevicePropertyValueModels);
                    await _deviceLogic.UpdateDeviceAsync(device);
                }
            }

            return(RedirectToAction("Index"));
        }
示例#3
0
        private async Task <ActionResult> Edit(EditDevicePropertiesModel model)
        {
            if (model != null)
            {
                dynamic device = await this._deviceLogic.GetDeviceAsync(model.DeviceId);

                if (!object.ReferenceEquals(device, null))
                {
                    this._deviceLogic.ApplyDevicePropertyValueModels(
                        device,
                        model.DevicePropertyValueModels);

                    await this._deviceLogic.UpdateDeviceAsync(device);
                }
            }

            return(this.RedirectToAction("Index"));
        }
        public async Task <ActionResult> EditDeviceProperties(EditDevicePropertiesModel model)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    return(await Edit(model));
                }
                catch (ValidationException exception)
                {
                    if (exception.Errors != null && exception.Errors.Any())
                    {
                        exception.Errors.ToList <string>().ForEach(error => ModelState.AddModelError(string.Empty, error));
                    }
                }
                catch (Exception)
                {
                    ModelState.AddModelError(string.Empty, Strings.DeviceUpdateError);
                }
            }

            return(View("EditDeviceProperties", model));
        }
示例#5
0
        public async Task <ActionResult> EditDeviceProperties(string deviceId)
        {
            EditDevicePropertiesModel model;
            IEnumerable <DevicePropertyValueModel> propValModels;

            model = new EditDevicePropertiesModel()
            {
                DevicePropertyValueModels = new List <DevicePropertyValueModel>()
            };

            var device = await _deviceLogic.GetDeviceAsync(deviceId);

            if (!object.ReferenceEquals(device, null))
            {
                model.DeviceId = DeviceSchemaHelper.GetDeviceID(device);

                propValModels = _deviceLogic.ExtractDevicePropertyValuesModels(device);
                propValModels = ApplyDevicePropertyOrdering(propValModels);

                model.DevicePropertyValueModels.AddRange(propValModels);
            }

            return(View("EditDeviceProperties", model));
        }