Пример #1
0
            private static Column GetNewScriptBase(ScriptObject[] newScriptObjects, ScriptBase oldImmediateParent, Column oldColumn)
            {
            // Look for script object still existing
            ScriptObject newScriptObject = GetNewScriptBase(newScriptObjects, oldColumn.Parent);

            // Look for column still existing
            Column newColumn = Search.GetColumn(newScriptObject.Columns, oldColumn.Name, false);

            // Stored procedure create columns in place of parameters in order to create filters
            if (newColumn == null && newScriptObject.GetType() == typeof(Model.StoredProcedure))
            {
                Model.StoredProcedure newStoredProcedure = (Model.StoredProcedure)newScriptObject;
                Model.StoredProcedure.Parameter parameter = Search.GetParameter(newStoredProcedure.Parameters, oldColumn.Name);

                if (parameter == null)
                {
                    string errorMessage = oldImmediateParent.GetType().Name + " " + oldImmediateParent.Alias + " references deleted parameter " + oldColumn.Alias + " of script object " + oldColumn.Parent.Alias +
                        ".\n" + oldColumn.GetType().Name + " " + oldColumn.Alias + " does not exist anymore." +
                        "\nPlease delete " + oldColumn.GetType().Name + " " + oldColumn.Alias + " from this " + oldImmediateParent.GetType().Name;
                    throw new Exception(errorMessage);
                }

                // Create columns for parameter as it is used as a filter column
                newColumn = new Column(parameter.Name, false, newScriptObject, parameter.OrdinalPosition, false, parameter.DataType,
                        parameter.Size, false, false, "", true, false, parameter.Precision, parameter.Scale);
            }

            if (newColumn == null)
            {
                string errorMessage = oldImmediateParent.GetType().Name + " " + oldImmediateParent.Alias + " references deleted column " + oldColumn.Alias + " of script object " + oldColumn.Parent.Alias +
                    ".\n" + oldColumn.GetType().Name + " " + oldColumn.Alias + " does not exist anymore." +
                    "\nPlease delete " + oldColumn.GetType().Name + " " + oldColumn.Alias + " from this " + oldImmediateParent.GetType().Name;
                throw new Exception(errorMessage);
            }

            return newColumn;
            }