public object Get(ComponentConfigurationDefinition request)
		{	
			if(request == null)
			{
				throw new ArgumentNullException("request is null");
			}
			else if(string.IsNullOrWhiteSpace(request.ParentId))
			{
				throw new ArgumentNullException("request.parentId is null");
			}	
			switch(request.ParentType)
			{
				case EnumDeployStepParentType.Component:
					var component = _projectManager.GetComponent(request.ParentId, request.ProjectId);
					return _deploymentValidator.GetComponentConfigurationDefinition(component.DeploymentStepList);
				case EnumDeployStepParentType.Configuration:
					var configuration = _projectManager.GetConfiguration(request.ParentId, request.ProjectId);
					return _deploymentValidator.GetComponentConfigurationDefinition(configuration.DeploymentStepList);
				default:
					throw new UnknownEnumValueException(request.ParentType);
			}
		}
		public ComponentConfigurationDefinition GetComponentConfigurationDefinition(List<DeployStep> deploymentStepList)
		{
			var returnValue = new ComponentConfigurationDefinition();
			if(deploymentStepList != null)
			{
				foreach (var deploymentStep in deploymentStepList)
				{
					var taskDefinition = _taskFactory.CreateTaskDefinition(deploymentStep.TaskTypeName, deploymentStep.TaskOptionsJson);
				
					var environmentList = taskDefinition.GetEnvironmentTaskParameterList();
					returnValue.EnvironmentTaskParameterList.AddRange(environmentList);

					var machineList = taskDefinition.GetMachineTaskParameterList();
					returnValue.MachineTaskParameterList.AddRange(machineList);
				}
			}
			return returnValue;
		}