Example #1
0
        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()));
            }
        }
Example #2
0
        /// <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);
        }
Example #3
0
        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
            });
        }