public MethodParameterApiModel(MethodParameterServiceModel serviceModel) { if (serviceModel != null) { this.Name = serviceModel.Name; this.ResponseTimeout = serviceModel.ResponseTimeout; this.ConnectionTimeout = serviceModel.ConnectionTimeout; this.JsonPayload = serviceModel.JsonPayload; } }
public async Task <JobServiceModel> ScheduleDeviceMethodAsync( string jobId, string queryCondition, MethodParameterServiceModel parameter, DateTimeOffset startTimeUtc, long maxExecutionTimeInSeconds) { //var result = await this.jobClient.ScheduleDeviceMethodAsync( // jobId, queryCondition, // parameter.ToAzureModel(), // startTimeUtc.DateTime, // maxExecutionTimeInSeconds); var devicelistString = queryCondition.Replace("deviceId in", "").Trim(); var devicelist = JsonConvert.DeserializeObject <List <dynamic> >(devicelistString); List <DeviceJobServiceModel> devicemodellist = new List <DeviceJobServiceModel>(); foreach (var item in devicelist) { DeviceJobServiceModel data = new DeviceJobServiceModel(); data.DeviceId = item; data.Status = DeviceJobStatus.Scheduled; data.CreatedDateTimeUtc = DateTime.UtcNow; devicemodellist.Add(data); } var devicecount = devicemodellist.Count(); JobServiceModel json = new JobServiceModel(); json.CreatedTimeUtc = DateTime.UtcNow; json.Devices = devicemodellist.ToList(); json.Status = JobStatus.Scheduled; json.MethodParameter = parameter; json.Type = JobType.ScheduleUpdateTwin; JobStatistics ResultStatistics = new JobStatistics(); ResultStatistics.DeviceCount = devicecount; ResultStatistics.SucceededCount = 0; ResultStatistics.FailedCount = 0; ResultStatistics.PendingCount = 0; ResultStatistics.RunningCount = 0; json.ResultStatistics = ResultStatistics; var value = JsonConvert.SerializeObject(json, Formatting.Indented, new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore }); var result = await this.client.CreateAsync(DEVICE_JOBS_COLLECTION_ID, value); var Job = this.CreatejobServiceModel(result); return(Job); }
public async Task <JobServiceModel> ScheduleDeviceMethodAsync( string jobId, string queryCondition, MethodParameterServiceModel parameter, DateTimeOffset startTimeUtc, long maxExecutionTimeInSeconds) { var result = await this.jobClient.ScheduleDeviceMethodAsync( jobId, queryCondition, parameter.ToAzureModel(), startTimeUtc.DateTime, maxExecutionTimeInSeconds); return(new JobServiceModel(result)); }
public async Task <MethodResultServiceModel> InvokeDeviceMethodAsync(string deviceId, MethodParameterServiceModel parameter) { var result = await this.serviceClient.InvokeDeviceMethodAsync(deviceId, parameter.ToAzureModel()); return(new MethodResultServiceModel(result)); }