public Result <int> Delete <TDataObject>(Guid identity) where TDataObject : class, Data.IDataObject, new() { SqlParameter[] parameters = new SqlParameter[] { SqlServerHelper.GetSqlParameter("Identity", identity) }; String commandText = SqlServerHelper.PrepareCommandText <TDataObject>(CommonCommands.DeleteRecord, parameters); SqlCommand command = SqlServerHelper.GetSqlCommand(commandText, parameters); Result <int> result = Result.SuccessResult <int>(0); TDataObject dataObj = new TDataObject( ); if (dataObj is Data.IDataObjectMapping) { Result <TDataObject> loadResult = this.Load <TDataObject>(identity); if (loadResult.IsSuccess) { Data.IDataObjectMapping mapping = (Data.IDataObjectMapping)loadResult.ReturnValue; result = this.AssertMapping(mapping, false); } } if (result.IsSuccess) { result = SqlServerHelper.ExecuteStatement(ref command); } return(result); }
public Result <int> AssertMapping(Data.IDataObjectMapping mappedObject, bool ensureExists) { List <SqlParameter> parameters = new List <SqlParameter>( ); parameters.AddRange(SqlServerHelper.GetSqlParameters(mappedObject, ensureExists)); String commandText = SqlServerHelper.PrepareCommandText(mappedObject); SqlCommand command = SqlServerHelper.GetSqlCommand(commandText, parameters.ToArray( )); return(SqlServerHelper.ExecuteStatement(ref command)); }
public Result <int> Save <TDataObject>(TDataObject dataObject) where TDataObject : class, Data.IDataObject, new() { String commandText = String.Empty; List <SqlParameter> parameters = new List <SqlParameter>( ); SqlCommand command; parameters.AddRange(SqlServerHelper.GetSqlParameters(dataObject.GetValues( ))); commandText = SqlServerHelper.PrepareCommandText <TDataObject>(CommonCommands.SaveRecord, parameters.ToArray( )); command = SqlServerHelper.GetSqlCommand(commandText, parameters.ToArray( )); Result <int> result = SqlServerHelper.ExecuteStatement(ref command); if (dataObject is Data.IDataObjectMapping) { Data.IDataObjectMapping mappedObject = (Data.IDataObjectMapping)dataObject; if (result.IsSuccess) { result = this.AssertMapping(mappedObject, true); } } return(result); }
public static IEnumerable <SqlParameter> GetSqlParameters(Data.IDataObjectMapping dataObjectMapping, bool ensureExists) { const String ident = "Identity"; const String ensureParamName = "EnsureExists"; List <SqlParameter> parameters = new List <SqlParameter>( ); String parentParameterName = String.Format("{0}{1}", dataObjectMapping.ParentDataObjectNameSingular, ident); String childParameterName = String.Format("{0}{1}", dataObjectMapping.Metadata.DataObjectNameSingular, ident); Dictionary <String, Object> addlParams = dataObjectMapping.GetAdditionalValues( ); parameters.Add(GetSqlParameter(parentParameterName, dataObjectMapping.GetParentIdentity( ))); parameters.Add(GetSqlParameter(childParameterName, dataObjectMapping.GetIdentity( ))); if (addlParams != null) { foreach (String key in addlParams.Keys) { parameters.Add(GetSqlParameter(key, addlParams[key])); } } parameters.Add(GetSqlParameter(ensureParamName, ensureExists)); return(parameters.ToArray( )); }
public static String PrepareCommandText(Data.IDataObjectMapping dataObjectMapping) { return(String.Format("[{0}].[{1}{2}{3}{4}]", dataObjectMapping.SchemaName, StoredProcedureNamePrefix, dataObjectMapping.ParentDataObjectNameSingular, dataObjectMapping.Metadata.DataObjectNameSingular, "AssertMapping")); }