public async Task <HttpResponseMessage> UpdateDevice(UpdateDeviceRequest updateDeviceRequest)
        {
            var content = IntegrationHttpRequest.CreateContentRequest(updateDeviceRequest);
            HttpResponseMessage response = await client.PutAsync(UrlBase + "api/v1/update-device", content);

            return(response);
        }
        public void Update_WithValidParameters_DeviceIsUpdated()
        {
            //Arrange
            var dbContext           = DbContextMocker.GetDbContext(nameof(Update_WithValidParameters_DeviceIsUpdated));
            var devicesController   = new DevicesController(dbContext);
            var updateDeviceRequest = new UpdateDeviceRequest
            {
                Name     = "updatedName",
                Location = "updatedLocation"
            };
            var expectedDevice = new Device
            {
                Device_id = 1,
                Name      = "updatedName",
                Location  = "updatedLocation"
            };

            //Act
            var response       = devicesController.Update(1, updateDeviceRequest);
            var result         = (ObjectResult)response.Result;
            var deviceReceived = result.Value.As <Device>();

            dbContext.Dispose();

            //Assert
            result.StatusCode.Should().Be((int)HttpStatusCode.OK);
            Assert.True(DevicesComparer.CompareDevices(deviceReceived, expectedDevice), "The device received is different " +
                        "than the expected.");
        }
Пример #3
0
 public async Task <ResponseDTO> Update(UpdateDeviceRequest device)
 {
     if (ModelState.IsValid)
     {
         return(await _deviceApplicationService.UpdateDeviceAsync(device));
     }
     return(ModelState.ToResponse());
 }
        public async Task <bool> UpdateDeviceAsync(UpdateDeviceRequest request)
        {
            var result = await UpdateAsync(_mapper.Map <DomainModel.Device>(request));

            await SaveAsync();

            return(result);
        }
Пример #5
0
 public static bool CompareDeviceWithDeviceRequest(Device device, UpdateDeviceRequest deviceRequest)
 {
     if ((!device.Name.Equals(deviceRequest.Name) ||
          !device.Location.Equals(deviceRequest.Location)))
     {
         return(false);
     }
     return(true);
 }
        public async Task TestUpdateDevice(UpdateDeviceRequest obj, ObjectResult resultAction, bool elementCreated = false)
        {
            var createdcompanyId = DeviceComponentsValues.GetDeviceAviability();

            obj.Id = elementCreated == true ? createdcompanyId : obj.Id;

            HttpResponseMessage actionResult = await _deviceAPI.UpdateDevice(obj);

            base.CheckAssert(actionResult, resultAction);
        }
        public async Task TestUpdateDevice(UpdateDeviceRequest obj, ObjectResult resultAction, bool elementCreated = false)
        {
            DeviceResponse defaultCompany = await this.CreatedDefaultDevice();

            obj.Id = elementCreated == true ? defaultCompany.Id : obj.Id;

            IActionResult actionResult = await this.UpdateDevice(obj);

            base.CheckAssert(actionResult, resultAction);
        }
Пример #8
0
        /// <summary>
        /// 修改设备
        /// </summary>
        public async Task <UpdateDeviceResponse> UpdateDeviceAsync(UpdateDeviceRequest updateDeviceRequest)
        {
            Dictionary <string, string> urlParam = new Dictionary <string, string>();

            urlParam.Add("device_id", updateDeviceRequest.DeviceId.ToString());
            string              urlPath  = HttpUtils.AddUrlPath("/v5/iot/{project_id}/devices/{device_id}", urlParam);
            SdkRequest          request  = HttpUtils.InitSdkRequest(urlPath, "application/json", updateDeviceRequest);
            HttpResponseMessage response = await DoHttpRequestAsync("PUT", request);

            return(JsonUtils.DeSerialize <UpdateDeviceResponse>(response));
        }
Пример #9
0
        protected override async Task <Entity> UpdateAsync(IDictionary <string, object> propertyUpdates, IDictionary <string, string> attributeUpdates, IEnumerable <string> addedTags, IEnumerable <string> removedTags, int specificRevision)
        {
            var request = new UpdateDeviceRequest()
            {
                SessionToken = AppacitiveContext.SessionToken,
                Environment  = AppacitiveContext.Environment,
                UserToken    = AppacitiveContext.UserToken,
                Verbosity    = AppacitiveContext.Verbosity,
                Revision     = specificRevision,
                Id           = this.Id
            };

            if (propertyUpdates != null && propertyUpdates.Count > 0)
            {
                propertyUpdates.For(x => request.PropertyUpdates[x.Key] = x.Value);
            }
            if (attributeUpdates != null && attributeUpdates.Count > 0)
            {
                attributeUpdates.For(x => request.AttributeUpdates[x.Key] = x.Value);
            }

            if (addedTags != null)
            {
                request.AddedTags.AddRange(addedTags);
            }
            if (removedTags != null)
            {
                request.RemovedTags.AddRange(removedTags);
            }

            // Check if an update is needed.
            if (request.PropertyUpdates.Count == 0 &&
                request.AttributeUpdates.Count == 0 &&
                request.AddedTags.Count == 0 &&
                request.RemovedTags.Count == 0)
            {
                return(null);
            }

            var response = await request.ExecuteAsync();

            if (response.Status.IsSuccessful == false)
            {
                throw response.Status.ToFault();
            }

            // 3. Update the last known state based on the differences
            Debug.Assert(response.Device != null, "If status is successful, then updated device should not be null.");
            return(response.Device);
        }
Пример #10
0
        public async Task <IActionResult> Update([FromRoute] int id, [FromBody] UpdateDeviceRequest request)
        {
            if (id <= default(int))
            {
                return(BadRequest("Id should be more then 0"));
            }

            var device = _mapper.Map <Contracts.Entities.Device>(request);

            device.Id = id;

            await _deviceService.UpdateDevice(device);

            return(Ok());
        }
Пример #11
0
        public async Task <IActionResult> Put(int id, [FromBody] UpdateDeviceRequest request)
        {
            try {
                await _repository.UpdateAsync(id, request);
            } catch (DbUpdateConcurrencyException) {
                if (!await _repository.ExistsAsync(id))
                {
                    return(NotFound());
                }

                throw;
            }

            return(NoContent());
        }
Пример #12
0
        public async Task <IActionResult> Update(int id, [FromBody] UpdateDeviceRequest request)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            try
            {
                await _devicesRepository.Update(id, request);

                return(NoContent());
            }
            catch (InvalidDeviceException)
            {
                return(NotFound());
            }
            catch (InvalidOfficeException)
            {
                string errorText = String.Format("Office with ID: {0} doesn't exist", request.OfficeId);
                return(StatusCode(StatusCodes.Status409Conflict, new { Message = errorText }));
            }
            catch (InvalidBrandException)
            {
                string errorText = String.Format("Brand with ID: {0} doesn't exist", request.BrandId);
                return(StatusCode(StatusCodes.Status409Conflict, new { Message = errorText }));
            }
            catch (InvalidModelException)
            {
                string errorText = String.Format("Model with ID: {0} doesn't exist", request.ModelId);
                return(StatusCode(StatusCodes.Status409Conflict, new { Message = errorText }));
            }
            catch (DuplicateDeviceSerialNumberException)
            {
                string errorText = String.Format("Device with Serial number: {0} already exist", request.SerialNum);
                return(StatusCode(StatusCodes.Status409Conflict, new { Message = errorText }));
            }
            catch (DuplicateModelException)
            {
                string errorText = String.Format("Model with name: {0} already exist", request.ModelName);
                return(StatusCode(StatusCodes.Status409Conflict, new { Message = errorText }));
            }
            catch (DuplicateDeviceIdentificationNumberException)
            {
                string errorText = String.Format("Device with identification number: {0} already exist", request.IdentificationNum);
                return(StatusCode(StatusCodes.Status409Conflict, new { Message = errorText }));
            }
        }
        public async Task <ResponseDTO> UpdateDeviceAsync(UpdateDeviceRequest device)
        {
            //Map to Command
            var command = _mapper.Map <UpdateDeviceRequest, UpdateDeviceCommand>(device);

            var response = await ValidateCellphoneAndUser(device.CellphoneNumber, device.AssignedAmigoTenantTUserId);

            if (response.IsValid)
            {
                //Execute Command
                var resp = await _bus.SendAsync(command);

                ResponseBuilder.Correct(resp);
            }

            return(response);
        }
Пример #14
0
        public async Task UpdateDevice_Call()
        {
            //--------------    Arrange     -------------
            CommonArrangements();

            var request = new UpdateDeviceRequest();
            var command = new UpdateDeviceCommand();

            A.CallTo(() => mapper.Map <UpdateDeviceRequest, UpdateDeviceCommand>(request)).Returns(command);

            //--------------    Act     -------------
            var resp = deviceService.UpdateDeviceAsync(request);

            //--------------    Assert     -------------

            A.CallTo(() => bus.SendAsync(command)).MustHaveHappened(Repeated.Exactly.Once);
        }
Пример #15
0
        public async Task Rename(UpdateDeviceRequest device)
        {
            using (IUnitOfWork uow = factory.Create())
            {
                IDeviceRepository devicesRepository = uow.GetDeviceRepository();
                Device            existDevice       = await devicesRepository.GetById(device.Id);

                if (existDevice == null)
                {
                    throw new Exception("Запись с таким id не найдена");
                }

                existDevice.Name = device.Name;
                await devicesRepository.Update(existDevice);

                uow.Commit();
            }
        }
Пример #16
0
        public async Task Update_WithoutAnExistingDevice_ReturnNotFound()
        {
            //Arrange
            int nonExistingDeviceId = 99;

            UpdateDeviceRequest deviceRequest = new UpdateDeviceRequest {
                Name = "integrationTestNameUpdated1", Location = "integrationTestLocationUpdated1"
            };
            var         updatePayload = JsonConvert.SerializeObject(deviceRequest);
            HttpContent updateContent = new StringContent(updatePayload, Encoding.UTF8, "application/json");

            string requestUri = $"Devices/{nonExistingDeviceId}";

            // Act
            var response = await HttpClient.PutAsync(requestUri, updateContent);

            //Assert
            response.StatusCode.Should().Be(HttpStatusCode.NotFound);
        }
        private async Task <IActionResult> UpdateDevice(UpdateDeviceRequest updateDeviceRequest)
        {
            var options = new DbContextOptionsBuilder <Context>()
                          .UseInMemoryDatabase(databaseName: "Device")
                          .Options;



            // Run the test against one instance of the context
            using (var context = new Context(options))
            {
                var repository = new DeviceRepository(context, AutomapperSingleton.Mapper);
                var service    = new DeviceService(repository, AutomapperSingleton.Mapper);
                var controller = new DeviceController(service);

                Mock <HttpRequest> mockCreateRequest = MockHttpRequest.CreateMockRequest(updateDeviceRequest);
                return(await controller.UpdateDeviceAsync(mockCreateRequest.Object, _logger)); //as GridController;
            }
        }
Пример #18
0
        public void TestUpdateDevice()
        {
            var client = new DefaultOneNETClient(url, appkey, "");
            var device = new DeviceBasicInfo
            {
                Title = "测试修改C# SDK的返回结果",
                Desc  = "一次通过一次通过一次通过了吗?(update)",
                //Private = true,
                OnLine = true,
                //Tags = new[] { "测试", "sdk" },
                //Location = new LocationInfo(370000, 27.609997, 178.03403)
            };
            var req = new UpdateDeviceRequest {
                DeviceID = 776941, DeviceInfo = device
            };
            var resp = client.Execute(req);

            Assert.IsFalse(resp.IsError);
        }
Пример #19
0
        public async Task <IActionResult> UpdateDevice([FromRoute] string deviceId, [FromBody] UpdateDeviceRequest request)
        {
            var user = await UserManager.GetUserAsync(User);

            if (user == null)
            {
                return(NotFound());
            }
            var device = await DbContext.UserDevices.SingleOrDefaultAsync(x => x.UserId == user.Id && x.DeviceId == deviceId);

            if (device is null)
            {
                return(NotFound());
            }
            var shouldEnablePushNotifications = !string.IsNullOrWhiteSpace(request.PnsHandle);
            var shouldUnRegisterDevice        = device.IsPushNotificationsEnabled && !shouldEnablePushNotifications;
            var shouldRegisterDevice          = !device.IsPushNotificationsEnabled && shouldEnablePushNotifications;

            try {
                if (shouldUnRegisterDevice)
                {
                    await PushNotificationService.UnRegister(deviceId);
                }
                if (shouldRegisterDevice)
                {
                    await PushNotificationService.Register(device.DeviceId, request.PnsHandle, device.Platform, user.Id, request.Tags?.ToArray());
                }
            } catch (Exception exception) {
                Logger.LogError("An exception occurred when connection to Azure Notification Hubs. Exception is '{Exception}'. Inner Exception is '{InnerException}'.", exception.Message, exception.InnerException?.Message ?? "N/A");
                throw;
            }
            device.IsPushNotificationsEnabled = shouldEnablePushNotifications;
            device.Name      = request.Name;
            device.Model     = request.Model;
            device.OsVersion = request.OsVersion;
            device.Data      = request.Data;
            await DbContext.SaveChangesAsync();

            var @event = new DeviceUpdatedEvent(DeviceInfo.FromUserDevice(device), SingleUserInfo.FromUser(user));
            await EventService.Publish(@event);

            return(NoContent());
        }
Пример #20
0
        public async Task Update_WithValidParameters_DeviceWasUpdated()
        {
            //Arrange
            CreateDeviceRequest deviceCreateRequest = new CreateDeviceRequest {
                Name = "integrationTestName1", Location = "integrationTestLocation1"
            };

            var insertSqlString = $"Insert into Devices (Name, Location) values('{deviceCreateRequest.Name}', '{deviceCreateRequest.Location}')";

            ExecuteNonQuery(insertSqlString);

            var selectSqlString = $"Select * from Devices WHERE Name = '{deviceCreateRequest.Name}'";
            var device          = ExecuteDevicesQuery(selectSqlString);

            Assert.NotNull(device);

            UpdateDeviceRequest deviceUpdateRequest = new UpdateDeviceRequest {
                Name = "integrationTestNameUpdated1", Location = "integrationTestLocationUpdated1"
            };
            var         updatePayload = JsonConvert.SerializeObject(deviceUpdateRequest);
            HttpContent updateContent = new StringContent(updatePayload, Encoding.UTF8, "application/json");

            string requestUri = $"Devices/{device.Device_id}";

            // Act
            var response = await HttpClient.PutAsync(requestUri, updateContent);

            //Assert
            response.StatusCode.Should().Be(HttpStatusCode.OK);

            selectSqlString = $"Select * from Devices WHERE Name = '{deviceUpdateRequest.Name}'";
            var receivedUpdatedDevice = ExecuteDevicesQuery(selectSqlString);

            Assert.NotNull(receivedUpdatedDevice);

            Assert.True(DevicesComparer.CompareDeviceWithDeviceRequest(receivedUpdatedDevice, deviceUpdateRequest), "The device was not updated.");

            //Clean Up
            var cleanUpSqlString = $"DELETE FROM Devices WHERE Name = '{deviceUpdateRequest.Name}'";
            var cleanedUp        = ExecuteNonQuery(cleanUpSqlString);

            Assert.True(cleanedUp, "It was not possible to clean up the database.");
        }
        public async Task <Device> UpdateDevice(Guid deviceId, UpdateDeviceRequest updateDeviceRequest)
        {
            var existingDevice = await _dbContext.Devices.AsTracking().FirstOrDefaultAsync(d => d.Id == deviceId);

            if (existingDevice == null)
            {
                throw new KeyNotFoundException();
            }

            existingDevice.DeviceIdentifier = updateDeviceRequest.DeviceIdentifier;
            existingDevice.IpAddress        = updateDeviceRequest.IpAddress;
            existingDevice.Type             = updateDeviceRequest.Type;
            existingDevice.ClientId         = updateDeviceRequest.ClientId;
            existingDevice.BuildingId       = updateDeviceRequest.BuildingId;

            _dbContext.Devices.Update(existingDevice);
            await _dbContext.SaveChangesAsync();

            return(existingDevice);
        }
        public void Update_WithoutAnExistingDevice_ReturnNotFound()
        {
            //Arrange
            var dbContext           = DbContextMocker.GetDbContext(nameof(Update_WithoutAnExistingDevice_ReturnNotFound));
            var devicesController   = new DevicesController(dbContext);
            var updateDeviceRequest = new UpdateDeviceRequest
            {
                Name     = "updatedName",
                Location = "updatedLocation"
            };

            //Act
            var response       = devicesController.Update(4, updateDeviceRequest);
            var result         = (ObjectResult)response.Result;
            var deviceReceived = result.Value.As <Device>();

            dbContext.Dispose();

            //Assert
            result.StatusCode.Should().Be((int)HttpStatusCode.NotFound);
        }
        public async Task <IActionResult> Update(int id, UpdateDeviceRequest updateDeviceRequest)
        {
            var currentDevice = _context.Devices.SingleOrDefault(device => device.Device_id == id);

            if (currentDevice == null)
            {
                return(NotFound("No device was found with the inserted device_id: " + id));
            }

            currentDevice.Name     = updateDeviceRequest.Name;
            currentDevice.Location = updateDeviceRequest.Location;

            _context.Devices.Update(currentDevice);

            var numerOfUpdates = await _context.SaveChangesAsync();

            if (numerOfUpdates > 0)
            {
                return(Ok(currentDevice));
            }

            return(NotFound("No device was found with the inserted device_id: " + id));
        }
        private static void updateDevice(IoTDAClient client)
        {
            UpdateDeviceRequest req = new UpdateDeviceRequest
            {
                DeviceId = "5e25d39a3b7c24fa3638804b_1211211",
                Body     = new UpdateDevice()
                {
                    DeviceName  = "test",
                    Description = "dfsdfgfgvfdfddfvdf",
                    AuthInfo    = new AuthInfoWithoutSecret()
                    {
                        SecureAccess = true,
                        Timeout      = 0
                    }
                }
            };

            try
            {
                var resp = client.UpdateDevice(req);
                Console.WriteLine(resp);
            }
            catch (RequestTimeoutException requestTimeoutException)
            {
                Console.WriteLine(requestTimeoutException.ErrorMessage);
            }
            catch (ServiceResponseException clientRequestException)
            {
                Console.WriteLine(clientRequestException.HttpStatusCode);
                Console.WriteLine(clientRequestException.ErrorCode);
                Console.WriteLine(clientRequestException.ErrorMsg);
            }
            catch (ConnectionException connectionException)
            {
                Console.WriteLine(connectionException.ErrorMessage);
            }
        }
Пример #25
0
 public async Task <UpdateDeviceResponse> UpdateDeviceAsync(UpdateDeviceRequest request)
 {
     AlibabaCloud.TeaUtil.Models.RuntimeOptions runtime = new AlibabaCloud.TeaUtil.Models.RuntimeOptions();
     return(await UpdateDeviceWithOptionsAsync(request, runtime));
 }
Пример #26
0
        private UpdateDeviceRequest CreateUpdateRequest(EntityChanges changes, int specificRevision, ApiOptions options)
        {
            var request = new UpdateDeviceRequest()
            {
                Revision = specificRevision,
                Id = this.Id
            };
            ApiOptions.Apply(request, options);

            if (changes.PropertyUpdates != null && changes.PropertyUpdates.Count > 0)
                changes.PropertyUpdates.For(x => request.PropertyUpdates[x.Key] = x.Value);
            if (changes.AttributeUpdates != null && changes.AttributeUpdates.Count > 0)
                changes.AttributeUpdates.For(x => request.AttributeUpdates[x.Key] = x.Value);

            if (changes.AddedTags != null)
                request.AddedTags.AddRange(changes.AddedTags);
            if (changes.RemovedTags != null)
                request.RemovedTags.AddRange(changes.RemovedTags);
            return request;
        }
Пример #27
0
 public async Task <UpdateDeviceResponse> UpdateDeviceAsync(UpdateDeviceRequest updateDeviceRequest)
 {
     return(await _onenetClient.ExecuteAsync <UpdateDeviceResponse>(updateDeviceRequest));
 }
Пример #28
0
 /// <summary>
 ///  修改设备详情
 /// </summary>
 /// <param name="request">请求参数信息</param>
 /// <returns>请求结果信息</returns>
 public async Task <UpdateDeviceResponse> UpdateDevice(UpdateDeviceRequest request)
 {
     return(await new UpdateDeviceExecutor().Client(this).Execute <UpdateDeviceResponse, UpdateDeviceResult, UpdateDeviceRequest>(request).ConfigureAwait(false));
 }
Пример #29
0
 /// <summary>
 ///  修改设备详情
 /// </summary>
 /// <param name="request">请求参数信息</param>
 /// <returns>请求结果信息</returns>
 public UpdateDeviceResponse UpdateDevice(UpdateDeviceRequest request)
 {
     return(new UpdateDeviceExecutor().Client(this).Execute <UpdateDeviceResponse, UpdateDeviceResult, UpdateDeviceRequest>(request));
 }
        public async Task <bool> UpdateDeviceAsync(UpdateDeviceRequest request)
        {
            var result = await _deviceRepository.UpdateDeviceAsync(request);

            return(result);
        }
Пример #31
0
 public UpdateDeviceResponse UpdateDevice(UpdateDeviceRequest request)
 {
     AlibabaCloud.TeaUtil.Models.RuntimeOptions runtime = new AlibabaCloud.TeaUtil.Models.RuntimeOptions();
     return(UpdateDeviceWithOptions(request, runtime));
 }
Пример #32
0
        protected override async Task<Entity> UpdateAsync(IDictionary<string, object> propertyUpdates, IDictionary<string, string> attributeUpdates, IEnumerable<string> addedTags, IEnumerable<string> removedTags, int specificRevision)
        {
            var request = new UpdateDeviceRequest()
            {
                SessionToken = AppacitiveContext.SessionToken,
                Environment = AppacitiveContext.Environment,
                UserToken = AppacitiveContext.UserToken,
                Verbosity = AppacitiveContext.Verbosity,
                Revision = specificRevision,
                Id = this.Id
            };

            if (propertyUpdates != null && propertyUpdates.Count > 0)
                propertyUpdates.For(x => request.PropertyUpdates[x.Key] = x.Value);
            if (attributeUpdates != null && attributeUpdates.Count > 0)
                attributeUpdates.For(x => request.AttributeUpdates[x.Key] = x.Value);

            if (addedTags != null)
                request.AddedTags.AddRange(addedTags);
            if (removedTags != null)
                request.RemovedTags.AddRange(removedTags);

            // Check if an update is needed.
            if (request.PropertyUpdates.Count == 0 &&
                request.AttributeUpdates.Count == 0 &&
                request.AddedTags.Count == 0 &&
                request.RemovedTags.Count == 0)
                return null;

            var response = await request.ExecuteAsync();
            if (response.Status.IsSuccessful == false)
                throw response.Status.ToFault();

            // 3. Update the last known state based on the differences
            Debug.Assert(response.Device != null, "If status is successful, then updated device should not be null.");
            return response.Device;
        }