public SharedAccessSignatureService(CloudBlobClient cloudBlobClient, WebOperationContext webOperationContext, BlobContainerRequestValidator requestValidator, IUserPrivilegesRepository userPrivilegesRepository)
        {
            if ((cloudBlobClient == null) && (GetStorageAccountFromConfigurationSetting() == null))
            {
                throw new ArgumentNullException("cloudBlobClient", "The Cloud Blob Client cannot be null if no configuration is loaded.");
            }

            this.cloudBlobClient = cloudBlobClient ?? GetStorageAccountFromConfigurationSetting().CreateCloudBlobClient();
            this.webOperationContext = webOperationContext;

            this.requestValidator = requestValidator;
            this.userPrivilegesRepository = userPrivilegesRepository;
        }
        public SharedAccessSignatureService(CloudBlobClient cloudBlobClient, HttpContextBase context, WebOperationContext webOperationContext, BlobContainerRequestValidator requestValidator, IUserPrivilegesRepository userPrivilegesRepository)
        {
            if ((context == null) && (HttpContext.Current == null))
            {
                throw new ArgumentNullException("context", "The context cannot be null if not running on a Web context.");
            }

            if ((cloudBlobClient == null) && (GetStorageAccountFromConfigurationSetting() == null))
            {
                throw new ArgumentNullException("cloudBlobClient", "The Cloud Blob Client cannot be null if no configuration is loaded.");
            }

            this.cloudBlobClient          = cloudBlobClient ?? GetStorageAccountFromConfigurationSetting().CreateCloudBlobClient();
            this.context                  = context;
            this.webOperationContext      = webOperationContext;
            this.requestValidator         = requestValidator;
            this.userPrivilegesRepository = userPrivilegesRepository;
        }