/// <summary> /// Compares database table columns if schematicly match each other /// </summary> /// <param name="masterColumn">Master database table column (or left)</param> /// <param name="checkedColumn">Checked database table column (or right)</param> /// <returns>Comparison result</returns> public static DbSchemaCompareResult DbCompare(DbObjectTableColumnSchema masterColumn, DbObjectTableColumnSchema checkedColumn) { if (masterColumn == null) { throw new ArgumentNullException(nameof(masterColumn)); } if (checkedColumn == null) { throw new ArgumentNullException(nameof(checkedColumn)); } DbSchemaCompareResult result = DbObjectParameterSchema.DbCompare(masterColumn, checkedColumn); if (masterColumn.DefaultValue != checkedColumn.DefaultValue) { result.CompareResultType = DbSchemaCompareResultType.Different; } if (masterColumn.Collation != checkedColumn.Collation) { result.CompareResultType = DbSchemaCompareResultType.Different; } return(result); }
/// <summary> /// Compares databas functions if schematicly match each other /// </summary> /// <param name="masterObjectFunction">Master database function (or left)</param> /// <param name="checkedObjectFunction">Checked database function (or right)</param> /// <returns>Comparison result</returns> public static DbSchemaCompareResult DbCompare(DbObjectFunctionSchema masterObjectFunction, DbObjectFunctionSchema checkedObjectFunction) { if (masterObjectFunction == null) { throw new ArgumentNullException(nameof(masterObjectFunction)); } if (checkedObjectFunction == null) { throw new ArgumentNullException(nameof(checkedObjectFunction)); } //masterObjectFunction.ReturnValues.Sort((l, r) => l.FakeOrderId.CompareTo(r.FakeOrderId)); //checkedObjectFunction.ReturnValues.Sort((l, r) => l.FakeOrderId.CompareTo(r.FakeOrderId)); DbSchemaCompareResult result = DbObjectStoredProcedureSchema.DbCompare(masterObjectFunction, checkedObjectFunction); foreach (DbObjectParameterSchema fMasterParam in masterObjectFunction.ReturnValues) { DbObjectParameterSchema fCheckParam = checkedObjectFunction.ReturnValues.FirstOrDefault(p => p.Name == fMasterParam.Name); result.InnerResults.Add(DbObjectParameterSchema.DbCompare(fMasterParam, fCheckParam)); } foreach (DbObjectParameterSchema fCheckParam in checkedObjectFunction.ReturnValues) { DbObjectParameterSchema?fMasterParam = masterObjectFunction.ReturnValues.FirstOrDefault(p => p.Name == fCheckParam.Name); if (fMasterParam == null) { result.InnerResults.Add(DbObjectParameterSchema.DbCompare(null, fCheckParam)); } } return(result); }