public const int DefaultBlockSize           = 4 * 1024 * 1024; // 4MB

        public static Configure AzureDataBus(this Configure config)
        {
            var container = Defaultcontainer;

            CloudBlobClient cloudBlobClient;

            var configSection = Configure.GetConfigSection <AzureDataBusConfig>();

            if (configSection != null)
            {
                cloudBlobClient = CloudStorageAccount.Parse(configSection.ConnectionString).CreateCloudBlobClient();

                container = configSection.Container;
            }
            else
            {
                cloudBlobClient = CloudStorageAccount.DevelopmentStorageAccount.CreateCloudBlobClient();
            }

            var dataBus = new BlobStorageDataBus(cloudBlobClient.GetContainerReference(container));

            if (configSection != null)
            {
                dataBus.BasePath          = configSection.BasePath;
                dataBus.MaxRetries        = configSection.MaxRetries;
                dataBus.NumberOfIOThreads = configSection.NumberOfIOThreads;
                dataBus.BlockSize         = configSection.BlockSize;
            }

            config.Configurer.RegisterSingleton <IDataBus>(dataBus);

            return(config);
        }
        public static Configure AzureDataBus(this Configure config)
        {
            var container = Defaultcontainer;

            CloudBlobClient cloudBlobClient;

            var configSection = Configure.GetConfigSection<AzureDataBusConfig>();

            if (configSection != null)
            {
                cloudBlobClient = CloudStorageAccount.Parse(configSection.ConnectionString).CreateCloudBlobClient();

                container = configSection.Container;
            }
            else
            {
                cloudBlobClient = CloudStorageAccount.DevelopmentStorageAccount.CreateCloudBlobClient();
            }

            var dataBus = new BlobStorageDataBus(cloudBlobClient.GetContainerReference(container));

            if(configSection != null)
            {
                dataBus.BasePath = configSection.BasePath;
                dataBus.MaxRetries = configSection.MaxRetries;
                dataBus.NumberOfIOThreads = configSection.NumberOfIOThreads;
                dataBus.BlockSize = configSection.BlockSize;
            }

            config.Configurer.RegisterSingleton<IDataBus>(dataBus);

            return config;
        }
    public virtual void ValidUntil_defaults_to_DateTimeMax()
    {
        var cloudBlob = StubACloudBlob();

        SetValidUntil(cloudBlob, TimeSpan.MaxValue);
        var resultValidUntil = BlobStorageDataBus.GetValidUntil(cloudBlob);

        Assert.AreEqual(DateTime.MaxValue, resultValidUntil);
    }
    public void ValidUntil_is_UtcKind()
    {
        var cloudBlob = StubACloudBlob();

        SetValidUntil(cloudBlob, TimeSpan.FromHours(1));
        var resultValidUntil = BlobStorageDataBus.GetValidUntil(cloudBlob);

        Assert.AreEqual(DateTimeKind.Utc, resultValidUntil.Kind);
    }
    public void ValidUntil_is_correctly_set()
    {
        var cloudBlob = StubACloudBlob();

        SetValidUntil(cloudBlob, TimeSpan.FromHours(1));
        var resultValidUntil = BlobStorageDataBus.GetValidUntil(cloudBlob);

        Assert.That(resultValidUntil, Is.EqualTo(DateTime.UtcNow.AddHours(1))
                    .Within(TimeSpan.FromSeconds(10)));
    }
    public virtual void ValidUntil_defaults_to_DateTimeMax_IfDefaultTtlSet_ButNoLastModifiedDateSet()
    {
        var cloudBlob = StubACloudBlob();

        const int defaultTtl = 1;

        SetValidUntil(cloudBlob, TimeSpan.MaxValue);
        var resultValidUntil = BlobStorageDataBus.GetValidUntil(cloudBlob, defaultTtl);

        Assert.AreEqual(DateTime.MaxValue, resultValidUntil);
    }
    public void ValidUntil_should_default_to_DateTimeMax_for_corrupted_value()
    {
        var cloudBlob = StubACloudBlob();

        SetValidUntil(cloudBlob, TimeSpan.FromHours(1));
        //HACK: set ValidUntil to be a non parsable string
        cloudBlob.Metadata["ValidUntil"] = "Not a date time";
        var resultValidUntil = BlobStorageDataBus.GetValidUntil(cloudBlob);

        Assert.AreEqual(DateTime.MaxValue, resultValidUntil);
    }
    public virtual void ValidUntil_defaults_to_DefaultTtl_IfDefaultTtlSet()
    {
        var validUntil = DateTime.UtcNow;
        var cloudBlob  = StubACloudBlob(validUntil);

        const int defaultTtl = 1;

        SetValidUntil(cloudBlob, TimeSpan.MaxValue);
        var resultValidUntil = BlobStorageDataBus.GetValidUntil(cloudBlob, defaultTtl);

        Assert.AreEqual(validUntil.AddSeconds(defaultTtl), resultValidUntil);
    }
    public virtual void ValidUntil_is_respected_IfDefaultTtlSet_EvenWhenNoLastModifiedDateFound()
    {
        var cloudBlob = StubACloudBlob();

        const int defaultTtl = 1;

        SetValidUntil(cloudBlob, TimeSpan.FromHours(1));
        var resultValidUntil = BlobStorageDataBus.GetValidUntil(cloudBlob, defaultTtl);

        Assert.That(resultValidUntil, Is.EqualTo(DateTime.UtcNow.AddHours(1))
                    .Within(TimeSpan.FromSeconds(10)));
    }
        /// <summary>
        /// See <see cref="Feature.Setup"/>
        /// </summary>
        protected override void Setup(FeatureConfigurationContext context)
        {
            var cloudBlobClient = CloudStorageAccount.Parse(context.Settings.Get<string>("AzureDataBus.ConnectionString")).CreateCloudBlobClient();

            var dataBus = new BlobStorageDataBus(cloudBlobClient.GetContainerReference(context.Settings.Get<string>("AzureDataBus.Container")))
            {
                BasePath = context.Settings.Get<string>("AzureDataBus.BasePath"),
                MaxRetries = context.Settings.Get<int>("AzureDataBus.MaxRetries"),
                BackOffInterval = context.Settings.Get<int>("AzureDataBus.BackOffInterval"),
                NumberOfIOThreads = context.Settings.Get<int>("AzureDataBus.NumberOfIOThreads"),
                BlockSize = context.Settings.Get<int>("AzureDataBus.BlockSize"),
                DefaultTTL = context.Settings.Get<long>("AzureDataBus.DefaultTTL")
            };

            context.Container.RegisterSingleton<IDataBus>(dataBus);
        }
Beispiel #11
0
        /// <summary>
        /// See <see cref="Feature.Setup"/>
        /// </summary>
        protected override void Setup(FeatureConfigurationContext context)
        {
            var cloudBlobClient = CloudStorageAccount.Parse(context.Settings.Get <string>("AzureDataBus.ConnectionString")).CreateCloudBlobClient();

            var dataBus = new BlobStorageDataBus(cloudBlobClient.GetContainerReference(context.Settings.Get <string>("AzureDataBus.Container")))
            {
                BasePath          = context.Settings.Get <string>("AzureDataBus.BasePath"),
                MaxRetries        = context.Settings.Get <int>("AzureDataBus.MaxRetries"),
                BackOffInterval   = context.Settings.Get <int>("AzureDataBus.BackOffInterval"),
                NumberOfIOThreads = context.Settings.Get <int>("AzureDataBus.NumberOfIOThreads"),
                BlockSize         = context.Settings.Get <int>("AzureDataBus.BlockSize"),
                DefaultTTL        = context.Settings.Get <long>("AzureDataBus.DefaultTTL")
            };

            context.Container.RegisterSingleton <IDataBus>(dataBus);
        }
	    public const int DefaultBlockSize = 4*1024*1024; // 4MB
		
		public static Configure AzureDataBus(this Configure config)
		{
		    var configSection = Configure.GetConfigSection<AzureDataBusConfig>() ?? new AzureDataBusConfig();

            var cloudBlobClient = CloudStorageAccount.Parse(configSection.ConnectionString).CreateCloudBlobClient();

            var dataBus = new BlobStorageDataBus(cloudBlobClient.GetContainerReference(configSection.Container))
            {
                BasePath = configSection.BasePath,
                MaxRetries = configSection.MaxRetries,
                NumberOfIOThreads = configSection.NumberOfIOThreads,
                BlockSize = configSection.BlockSize
            };

		    config.Configurer.RegisterSingleton<IDataBus>(dataBus);

			return config;
		}
    public virtual void ValidUntil_is_not_corrupt_by_change_in_local()
    {
        var currentCulture = Thread.CurrentThread.CurrentCulture;

        try
        {
            Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
            var cloudBlob = StubACloudBlob();
            var dateTime  = new DateTime(2100, 1, 4, 12, 0, 0);
            var timeSpan  = dateTime - DateTime.UtcNow;
            SetValidUntil(cloudBlob, timeSpan);
            Thread.CurrentThread.CurrentCulture = new CultureInfo("en-AU");
            var resultValidUntil = BlobStorageDataBus.GetValidUntil(cloudBlob);
            //Verify that day and month are not switched
            Assert.AreEqual(4, resultValidUntil.Day);
            Assert.AreEqual(1, resultValidUntil.Month);
        }
        finally
        {
            Thread.CurrentThread.CurrentCulture = currentCulture;
        }
    }
Beispiel #14
0
 protected override void SetValidUntil(ICloudBlob cloudBlob, TimeSpan timeToBeReceived)
 {
     BlobStorageDataBus.SetValidUntil(cloudBlob, timeToBeReceived);
 }