private void AssertThingDescription(ThingDescription td) { if (td == null) { throw new ArgumentNullException("td"); } td.Assert(); }
public void ActivateThing(ThingDescription td) { AssertInternetOfThings(); AssertThingDescription(td); try { _thingRepository.ActivateThing(td.Id); } catch (Exception ex) { throw new ProvisioningException(EXCEPTION_THING, ex) { Stage = ProvisioningStage.ActivateThing }; } }
public async Task <ThingDescription> CreateThingAsync(ThingDescription td) { int commandTopic; string secret; var stage = ProvisioningStage.None; AssertInternetOfThings(); AssertThingDescription(td); try { stage = ProvisioningStage.StoreThingInDatabase; StoreThingInDatabase(td.Id, td.Description, td.Area); stage = ProvisioningStage.CreateThingInServiceBus; commandTopic = await CreateThingInServiceBus(td.Id); stage = ProvisioningStage.CreateThingInServiceIdentity; secret = CreateThingInServiceIdentity(td.Id); stage = ProvisioningStage.CreateThingInRuleIngestion; CreateThingInRule(td.Id, PARTITION_INGESTION_RULEGROUP, ServiceBusOperation.Send); stage = ProvisioningStage.CreateThingInAccessControl; CreateThingInAccessControl(td.Id); stage = ProvisioningStage.CreateThingInRuleCommand; CreateThingInRule(td.Id, string.Format(PARTITION_COMMAND_RULEGROUP, td.Id), ServiceBusOperation.Listen); stage = ProvisioningStage.CreateThingConnectionString; td.SetConnectionString(CreateThingConnectionString(td.Id, secret)); td.SetCommandTopic(commandTopic); } catch (Exception ex) { throw new ProvisioningException(EXCEPTION_THING, ex) { Stage = stage }; } return(td); }
public ThingDescription CreateThing(ThingDescription td) { return(CreateThingAsync(td).Result); }