kreta/Tools/CodeGeneration/Templates/Server/DataAccess/DataAccessor/DeleteEntity.tdl
2024-03-13 00:33:46 +01:00

74 lines
3.8 KiB
Text

//***************************************************************************//
// Legenerálja a megadott entitás törlését elvégzo DA muveletet. //
//***************************************************************************//
template GenerateDeleteEntity(MClass as ENTITY)
#region DeleteEntity
private const string m_FizikaiDeleteCommandText = @"DELETE FROM [ConvertNameToSQLTableName([ENTITY.name])] WHERE (ID = :[ConvertNameToCommandParameterName("ID")]) ";
private const string m_LogikaiDeleteCommandText = @"
UPDATE [ConvertNameToSQLTableName([ENTITY.name])]
SET TOROLT = 'T' ,
SERIAL = SERIAL + 1,
[if(GetTaggedValue([ENTITY], "dkt") == "true")]
DELETER = :[ConvertNameToCommandParameterName("Deleter")],
DELETED = :[ConvertNameToCommandParameterName("Deleted")],
[end if]
LASTCHANGED = :[ConvertNameToCommandParameterName("LastChanged")],
MODIFIER = :[ConvertNameToCommandParameterName("Modifier")]
WHERE (ID = :[ConvertNameToCommandParameterName("ID")]) ";
public override void DeleteEntity([ENTITY.name] entity, bool logikai = true)
{
var _deleteCommandText = logikai ? m_LogikaiDeleteCommandText : m_FizikaiDeleteCommandText;
using ([GetCSharpSQLCommandType()] command = DAUtil.CreateCommand(_deleteCommandText))
{
command.Parameters.Add("[ConvertNameToCommandParameterName("ID")]", [GetCSharpSQLIDType()]).Value = entity.ID;
if (logikai)
{
DateTime lastchanged = DateTime.Now;
var modifier = UserContext.Instance.UniqueIdentifier;
command.Parameters.Add("[ConvertNameToCommandParameterName("LastChanged")]", [GetCSharpDatasetType("DateTime", "")]).Value = lastchanged;
command.Parameters.Add("[ConvertNameToCommandParameterName("Modifier")]", [GetCSharpSQLIDType()]).Value = modifier;
[if(GetTaggedValue([ENTITY], "dkt") == "true")]
command.Parameters.Add("[ConvertNameToCommandParameterName("Deleted")]", [GetCSharpDatasetType("DateTime", "")]).Value = lastchanged;
command.Parameters.Add("[ConvertNameToCommandParameterName("Deleter")]", [GetCSharpSQLIDType()]).Value = modifier;
[end if]
}
if (command.ExecuteNonQuery() != 1)
{
throw new EntityNotFoundException("[ENTITY.name]", entity.ID);
}
}
[if (IsMasterEntity([ENTITY]) == "false" && GetInheritance([ENTITY]) != "tpc")]
entity.InheritedDA.DeleteEntity(entity, logikai);
[end if]
}
[loop (ENTITY -> MAssociation as CURRENTASSOCIATION -> MAssociationEnd as STARTROLE -> MClass as STARTCLASS where (GetStereoType([STARTCLASS]) == "Entity"))]
[loop (CURRENTASSOCIATION -> MAssociationEnd as ENDROLE -> MClass as ENDCLASS where ([STARTROLE.id] < [ENDROLE.id] and GetStereoType([ENDCLASS]) == "Entity"))]
private const string m_DeleteBy[DefineRoleName([STARTROLE])]And[DefineRoleName([ENDROLE])]CommandText = @"
delete from [ConvertNameToSQLTableName([ENTITY.name])]
where
([ConvertNameToSQLColumnName(ConvertRoleToName([STARTROLE]))] = :[ConvertNameToCommandParameterName(ConvertRoleToName([STARTROLE]))])
and
([ConvertNameToSQLColumnName(ConvertRoleToName([ENDROLE]))] = :[ConvertNameToCommandParameterName(ConvertRoleToName([ENDROLE]))]) ";
public void DeleteBy[DefineRoleName([STARTROLE])]And[DefineRoleName([ENDROLE])](int [ConvertRoleToName([STARTROLE])], int [ConvertRoleToName([ENDROLE])])
{
using ([GetCSharpSQLCommandType()] command = DAUtil.CreateCommand(m_DeleteBy[DefineRoleName([STARTROLE])]And[DefineRoleName([ENDROLE])]CommandText))
{
command.Parameters.Add("[ConvertNameToCommandParameterName(ConvertRoleToName([STARTROLE]))]", [GetCSharpSQLIDType()]).Value = [ConvertRoleToName([STARTROLE])];
command.Parameters.Add("[ConvertNameToCommandParameterName(ConvertRoleToName([ENDROLE]))]", [GetCSharpSQLIDType()]).Value = [ConvertRoleToName([ENDROLE])];
command.ExecuteNonQuery();
}
}
[end loop]
[end loop]
#endregion
end template