public int GetMessageMaxSizeInBytes(MessagingSku sku) { switch (sku) { case MessagingSku.Basic: case MessagingSku.Standard: return(256000); case MessagingSku.Premium: return(1000000); default: throw new NotImplementedException(string.Format("Maximum message size for sku '{0}' is unknown", sku.ToString())); } }
/// <summary> /// Main cmdlet method. /// </summary> protected override void ProcessRecord() { SbMessageBatchTestResult result = new SbMessageBatchTestResult { BatchSize = string.Format("{0}B", GetMessageBatchSize(Messages).ToString()), NumberOfMessages = Messages.Length, ValidForBasicSku = TestMessageBatch(Messages, MessagingSku.Basic), ValidForStandardSku = TestMessageBatch(Messages, MessagingSku.Standard), ValidForPremiumSku = TestMessageBatch(Messages, MessagingSku.Premium), CurrentNamespaceSku = null, ValidForCurrentNamespace = null }; if (NamespaceConnectionString != null) { SbManager sbManager = new SbManager(NamespaceConnectionString); MessagingSku currentSku = sbManager.GetNamespaceSku(); result.CurrentNamespaceSku = currentSku; result.ValidForCurrentNamespace = TestMessageBatch(Messages, currentSku); } WriteObject(result); }
public SbMessageBatchTestResult.SkuValidityOutput TestMessageBatch(string[] Messages, MessagingSku NamespaceSku) { bool result = true; SbBatchTestResults reason = SbBatchTestResults.BatchWithinLimits; if (this.GetMessageBatchSize(Messages) > this.GetMessageMaxSizeInBytes(NamespaceSku)) { result = false; reason = SbBatchTestResults.BatchTooLarge; } return(new SbMessageBatchTestResult.SkuValidityOutput { Result = result, Reason = reason }); }