private void Receive(CreateBaseVMImageRequest request)
		{
			Labs.CreateBaseVMImage(request);
		}
		public async Task<string> CreateBaseVmImage(string imageName, string imageDescription, 
			string newImageName, string chocoPackages)
		{
			// Security considerations: because it requires an SubscriptionId that is retrieved from the
			// UnitOfWork, this method will succeede only for a logged in user.

			_logger.Info("Entering AzureManagement.CreateBaseVmImage");

			string result = "OK";

			try
			{
				int userId = UnitOfWork.CurrentIdentity.IdentityId;
				int activeSubscriptionId = UnitOfWork.ActiveSubscriptionId;

				List<string> chocoPackageList = chocoPackages != null ? 
					chocoPackages.Split(new[] {','}, StringSplitOptions.RemoveEmptyEntries).ToList() : 
					new List<string>();

				CreateBaseVMImageRequest request = new CreateBaseVMImageRequest
				{
					ImageName = imageName,
					ImageDescription = imageDescription,
					NewImageName = newImageName,
					UserId = userId,
					SubscriptionId = activeSubscriptionId,
					ChocoPackageList = chocoPackageList
				};

				await Messaging.SendAsync(request);
			}
			catch (Exception ex)
			{
				_logger.Fatal("Exception when creating base vm image.", ex);
				result = "Error";
			}

			_logger.Info("Exiting AzureManagement.CreateBaseVmImage");

			return result;
		}