public async Task <PartitionDescription> CreatePartitionAsync(PartitionDescription pd) { var stage = ProvisioningStage.None; AssertInternetOfThings(); AssertPartitionDescription(pd); try { stage = ProvisioningStage.StorePartitionInDatabase; StorePartitionInDatabase(pd.Description, pd.Area, pd.Namespace, pd.EventStore, pd.Owner, pd.OwnerSecret, pd.StorageAccount, pd.AccessControl, pd.AccessControlSecret); stage = ProvisioningStage.CreatePartitionInServiceBus; await CreatePartitionInServiceBus(pd.Namespace); stage = ProvisioningStage.CreatePartitionInTableStorage; await CreatePartitionInTableStorage(pd.Namespace); stage = ProvisioningStage.CreatePartitionInAccessControl; CreatePartitionInAccessControl(pd.Namespace); } catch (Exception ex) { throw new ProvisioningException(EXCEPTION_PARTITION, ex) { Stage = stage }; } return(pd); }
private void AssertPartitionDescription(PartitionDescription pd) { if (pd == null) { throw new ArgumentNullException("pd"); } pd.Assert(); }
public void ActivatePartition(PartitionDescription pd) { AssertInternetOfThings(); AssertPartitionDescription(pd); try { _partitionRepository.ActivatePartition(pd.Namespace); } catch (Exception ex) { throw new ProvisioningException(EXCEPTION_PARTITION, ex) { Stage = ProvisioningStage.ActivatePartition }; } }
public PartitionDescription CreatePartition(PartitionDescription pd) { return(CreatePartitionAsync(pd).Result); }