public PromptInfo GetPromptInfo(GlobalPromptBaseReportInfo baseReportInfo, ReportParameter[] promptReportParameters)
        {
            if (promptReportParameters == null)
            {
                const string messageFormat = "An error occured building Global Prompt '{0}', There were no parameters";
                var message = string.Format(messageFormat, baseReportInfo.Name);
                throw new PromptInfoProviderException(message);
            }
            if (promptReportParameters.Length == 1)
            {
                return _singleLevelPromptInfoProvider.GetPromptInfo(baseReportInfo, promptReportParameters[0]);
            }
            if (promptReportParameters.Length > 1 &&
                promptReportParameters.First().ValidValues == null &&
                baseReportInfo.Name.StartsWith(string.Format("{0}_",_recursiveHierarchyPrefix)))
            {
                return _recursivePromptInfoProvider.GetPromptInfo(
                    baseReportInfo,
                    promptReportParameters);
            }
            if (promptReportParameters.Length > 1 && promptReportParameters.First().ValidValues == null)
            {
                return _casscadingPromptInfoProvider.GetPromptInfo(
                    baseReportInfo,
                    promptReportParameters[0],
                    promptReportParameters[1]);
            }
            if (promptReportParameters.Length > 1 && promptReportParameters.First().ValidValues != null)
            {
                return _hierarchyPromptInfoProvider.GetPromptInfo(baseReportInfo, promptReportParameters);
            }

            throw new Exception();
        }
        public GlobalPromptBaseReportInfo Map(ReportParameter valueParameter, ReportParameter labelParameter)
        {
            SelectionType selectionType;

            if(valueParameter.MultiValue != labelParameter.MultiValue)
            {
                var expectionMessage =
                    string.Format(
                        "An error occured getting the selection type for '{0}':  both parameters did not have the same multivalue flag"
                        , valueParameter.Name);

                throw new GlobalPromptBaseReportInfoMapperException(expectionMessage);
            }

            if(valueParameter.MultiValue && labelParameter.MultiValue)
            {
                selectionType = SelectionType.MultiSelect;
            }
            else
            {
                selectionType = SelectionType.SingleSelect;
            }

            return new GlobalPromptBaseReportInfo(
                valueParameter.Name
                , valueParameter.Prompt
                , valueParameter.DefaultValues ?? new string[]{}
                , labelParameter.DefaultValues ?? new string[]{}
                , selectionType);
        }
        public virtual PromptInfo GetPromptInfo(GlobalPromptBaseReportInfo baseReportInfo, ReportParameter promptReportParameter)
        {
            var promptLevel = _promptLevelProvider.GetPromptLevel(promptReportParameter);
            var defaultValues = _defaultValueProvider.GetDefaultValues(promptLevel, baseReportInfo.ValueParameterDefaults);
            var promptType = _promptTypeProvider.GetPromptType(baseReportInfo.SelectionType);

            return new PromptInfo(baseReportInfo.Name, baseReportInfo.Label, promptType, promptLevel, defaultValues);
        }
        public IEnumerable<DefaultValue> Get(ReportParameter parameter)
        {
            if(parameter.DefaultValues == null)
            {
                return new DefaultValue[] {};
            }

            return new []{ _defaultValueProvider.Get(parameter.DefaultValues.First(), string.Empty)};
        }
        public PromptInfo GetPromptInfo(GlobalPromptBaseReportInfo baseReportInfo, ReportParameter[] promptReportParameters)
        {
            _hierarchyPromptReportValidator.Validate(baseReportInfo.Name, promptReportParameters);
            var promptLevel = new PromptLevel(promptReportParameters[0].Name, promptReportParameters[1].ValidValues, true);
            var defaultValues = _defaultValueProvider.GetDefaultValues(promptLevel, baseReportInfo.ValueParameterDefaults);
            var promptType = _promptTypeProvider.GetPromptType(baseReportInfo.SelectionType);

            return new PromptInfo(
                baseReportInfo.Name,
                baseReportInfo.Label,
                promptType,
                promptLevel,
                defaultValues);
        }
        public ParameterValue[] Get(ReportParameter[] baseReportParmaeters, IPromptSelections promptSelections)
        {
            var parameterValuesToReturn = new List<ParameterValue>();

            var baseReportPrompts = _baseReportInterpreter.Get(baseReportParmaeters);

            foreach (var parameterValueBuilder in baseReportPrompts)
            {
                var promptParmaeterValues = promptSelections.CreateParameterValuesFor(parameterValueBuilder);
                parameterValuesToReturn.AddRange(promptParmaeterValues);
            }

            return parameterValuesToReturn.ToArray();
        }
        public void Validate(string promptName, ReportParameter searchParameter, ReportParameter resultParameter)
        {
            if (searchParameter.ValidValues != null)
            {
                throw new PromptInfoProviderException(
                    string.Format(
                        "Error building Search Prompt Report '{0}', first parameters valid values were not null",
                        promptName));
            }

            if (resultParameter.Dependencies == null
                || resultParameter.Dependencies[0] != searchParameter.Name
                || resultParameter.Dependencies.Length > 1)
            {
                throw new PromptInfoProviderException(
                    string.Format(
                    "Error building Search Prompt Report '{0}', the result parameter must be dependent on the search parameter and have only one dependency",
                    promptName));
            }
        }
 public void Validate(string promptName, ReportParameter[] promptReportParameters)
 {
     if(promptReportParameters == null)
     {
         throw GetExactly2ParametersException(promptName);
     }
     if(promptReportParameters.Length != 2)
     {
         throw GetExactly2ParametersException(promptName);
     }
     if (promptReportParameters[0].ValidValues != null)
     {
         throw GetException(promptName, "first parameters valid values were not null");
     }
     if(promptReportParameters[1].Dependencies.Single() != promptReportParameters[0].Name)
     {
         throw GetException(
             promptName,
             "the result parameter must be dependent on the filter parameter");
     }
 }
        public void Validate(string promptName, ReportParameter[] promptReportParameters)
        {
            for (var i = 0; i < promptReportParameters.Length - 1; i++)
            {
                var childParameter = promptReportParameters[i + 1];
                var parentParameter = promptReportParameters[i];

                if (childParameter.Dependencies == null)
                {
                    throw GetInvalidDependencyException(promptName, parentParameter.Name, childParameter.Name);
                }
                if (childParameter.Dependencies.Length != 1)
                {
                    throw GetMoreThanOneDependencyException(promptName, childParameter.Name);
                }
                if (childParameter.Dependencies.Single().Equals(parentParameter.Name) == false)
                {
                    throw GetInvalidDependencyException(promptName, parentParameter.Name, childParameter.Name);
                }
            }
        }
        public PromptInfo GetPromptInfo(
            GlobalPromptBaseReportInfo baseReportInfo, 
            ReportParameter searchParameter, 
            ReportParameter resultParameter)
        {
            _promptReportValidator.Validate(baseReportInfo.Name, searchParameter, resultParameter);

            var name = baseReportInfo.Name;
            var label = baseReportInfo.Label;
            var promptType = _promptTypeProvider.GetPromptType(baseReportInfo.SelectionType);

            var defaultValues = _defaultValueProvider.Get(
                name,
                searchParameter.Name,
                baseReportInfo.ValueParameterDefaults,
                baseReportInfo.LabelParameterDefaults);

            var promptLevel = _promptLevelProvider.GetPromptLevel(searchParameter.Name, defaultValues);

            return new PromptInfo(name, label, promptType, promptLevel, defaultValues);
        }
 public EmbeddedPromptParameterValueBuilder(ReportParameter parameter)
 {
     _parameter = parameter;
 }
 public GlobalPromptParameterValueBuilder(ReportParameter valueParameter, ReportParameter labelParameter)
 {
     _labelParameter = labelParameter;
     _valueParameter = valueParameter;
 }
Esempio n. 13
0
 public IHierarchyPrompt Get(ReportParameter[] promptParameters)
 {
     return new HierarchyPrompt(promptParameters);
 }
 public PromptLevel GetPromptLevel(ReportParameter reportParameter)
 {
     return new PromptLevel(reportParameter.Name, reportParameter.ValidValues ?? new ValidValue[]{}, true);
 }
Esempio n. 15
0
 public RecursiveHierarchyPrompt(ReportParameter[] parameters)
 {
     _parameters = parameters;
 }
Esempio n. 16
0
 public HierarchyPrompt(ReportParameter[] parameters)
 {
     _parameters = parameters;
 }