public static void MergeParameters(DashboardParameterCollection fromParameters, DashboardMerger dashboardMerger)
        {
            DashboardParameterCollection toParameters = dashboardMerger.TargetDashboard.Parameters;

            foreach (DashboardParameter parameter in fromParameters)
            {
                AddParamterCopy(parameter, dashboardMerger, (parameterCopy) => {
                    toParameters.Add(parameterCopy);
                });
            }
        }
        static void AddParamterCopy(DashboardParameter originalParameter, DashboardMerger dashboardMerger, Action <DashboardParameter> addParameterDelegate)
        {
            DashboardParameter           parameterCopy = (DashboardParameter)originalParameter.Clone();
            DashboardParameterCollection toParameters  = dashboardMerger.TargetDashboard.Parameters;

            if (toParameters.Any(p => p.Name == parameterCopy.Name))
            {
                if (ResolveParameterNamesConflict(parameterCopy, originalParameter.Name, dashboardMerger))
                {
                    addParameterDelegate(parameterCopy);
                }
            }
            else
            {
                addParameterDelegate(parameterCopy);
            }
        }