public FatpipeMessage(string tenantIdentifier, string msgId, FatpipeManager fpm) { _header = new MessageHeader(tenantIdentifier, msgId); _body = new MessageBody(); _status = new MessageStatus(); this.fpm = fpm; routingInfo = null; }
public FatPipeDAL(string storageConnectionString, FatpipeManager fpm) { try { LoggerFactory.Logger.Debug("FatPipeDAL C'tor", "Initializing Azure accounts"); this.fpm = fpm; // The constructor below is hardcoded for now.. it will use the method params if (!string.IsNullOrEmpty(storageConnectionString)) { this.cloudAcct = CloudStorageAccount.Parse(storageConnectionString); } else //fallback path to Cloud storage { cloudAcct = new CloudStorageAccount(new StorageCredentialsAccountAndKey("maargsoft", "njPcqdHZuYUNbp32GS1tpSAeoUSp1hZ1EJsqRdtnTJe5BZtEmVd61UHonvva6o3WZ1COeAPtTm4ofbMqFaqj7Q=="), false); } queueClient = cloudAcct.CreateCloudQueueClient(); blobClient = cloudAcct.CreateCloudBlobClient(); this.tableClient = cloudAcct.CreateCloudTableClient(); bool runtimeEnv = !string.IsNullOrEmpty(MaargConfiguration.Instance[MaargConfiguration.FatpipeManagerIncomingQueueName]); if (runtimeEnv) { incomingQ = queueClient.GetQueueReference(MaargConfiguration.Instance[MaargConfiguration.FatpipeManagerIncomingQueueName]); outgoingQ = queueClient.GetQueueReference(MaargConfiguration.Instance[MaargConfiguration.FatpipeManagerOutgoingQueueName]); // Create the queue if it doesn't already exist incomingQ.CreateIfNotExist(); outgoingQ.CreateIfNotExist(); DateTime today = DateTime.Today; string bucket = string.Format(BlobContainerPartitionNameFormat, today.Month, today.Year, MaargConfiguration.Instance[MaargConfiguration.FatpipeManagerIncomingBlobContainerNameSuffix]); string outbucket = string.Format(BlobContainerPartitionNameFormat, today.Month, today.Year, MaargConfiguration.Instance[MaargConfiguration.FatpipeManagerOutgoingBlobContainerNameSuffix]); // Retrieve a reference to a container inContainer = blobClient.GetContainerReference(bucket); outContainer = blobClient.GetContainerReference(outbucket); // Create the container if it doesn't already exist inContainer.CreateIfNotExist(); outContainer.CreateIfNotExist(); } schemaContainer = blobClient.GetContainerReference(SchemaContainerName); schemaContainer.CreateIfNotExist(); notificationTemplateContainer = blobClient.GetContainerReference(NotificationTemplateContainerName); notificationTemplateContainer.CreateIfNotExist(); //suspended store if (runtimeEnv) { this.suspendedContainer = this.blobClient.GetContainerReference(MaargConfiguration.Instance[MaargConfiguration.SuspendedMessageBlobContainerName]); this.suspendedContainer.CreateIfNotExist(); this.tableClient.CreateTableIfNotExist(MaargConfiguration.Instance[MaargConfiguration.SuspendedMessageTableName]); this.suspendedTableServiceContext = this.tableClient.GetDataServiceContext(); int visibilityTimeoutInSeconds; if (!int.TryParse(MaargConfiguration.Instance[MaargConfiguration.FatpipeManagerQueueMessageVisibilityTimeoutInSeconds], out visibilityTimeoutInSeconds)) { visibilityTimeoutInSeconds = 30; LoggerFactory.Logger.Warning("FatPipeDAL C'tor", EventId.BizpipeMissingConfigValue , "Configuration for {0} is not defined. Using default value of {1} seconds." , MaargConfiguration.FatpipeManagerQueueMessageVisibilityTimeoutInSeconds , visibilityTimeoutInSeconds); } this.visibilityTimeout = new TimeSpan(0, 0, visibilityTimeoutInSeconds); // does it need public access? this.inContainer.SetPermissions(new BlobContainerPermissions { PublicAccess = BlobContainerPublicAccessType.Blob }); this.outContainer.SetPermissions(new BlobContainerPermissions { PublicAccess = BlobContainerPublicAccessType.Blob }); this.suspendedContainer.SetPermissions(new BlobContainerPermissions { PublicAccess = BlobContainerPublicAccessType.Blob }); } LoggerFactory.Logger.Debug("FatPipeDAL C'tor", "Connections established to Azure accounts"); } catch (Exception excp) { LoggerFactory.Logger.Error("FatPipeDAL C'tor", EventId.BizpipeCtor , "FatPipeDAL constructor encountered exception: {0} ", excp.ToString()); } }