SqlOrganize / SqlOrganizeCs

SqlOrganize C# implementation
MIT License
0 stars 0 forks source link

Métodos utiles para la persistencia de DataGrid #8

Closed ivancas84 closed 1 year ago

ivancas84 commented 1 year ago
ivancas84 commented 1 year ago

Se definió inicialmente el siguiente "extension method", pero ¿No deberia ser un método de EntityValues?. Como entityValues ya posee el entityName y fieldId, se podria definir por ejemplo algo como EntityValues v > v.ParentVariables(mainEntityName);

public static (string? fieldId, string fieldName, string entityName, object? value) RedefinePersistenceVariables(string fieldId, string mainEntityName, EntityValues v) { object? value = null; string entityName = ""; string fieldName = "";

string? parentId = ContainerApp.db.Entity(mainEntityName).relations[fieldId].parentId;
if (parentId != null)
{
    //sea por ejemplo alumnoT.personaF (con fieldId alumno) = personaT.id (con fieldId = persona), entones:
    //parentFieldName = personaF
    //value = personaValues.values["id"]
    //fieldId = alumno
    //fieldName = personaF
    //entityName = alumnoT
    string parentFieldName = ContainerApp.db.Entity(mainEntityName).relations[fieldId].fieldName;
    value = v.values[ContainerApp.db.Entity(mainEntityName).relations[fieldId].refFieldName];
    fieldId = parentId;
    fieldName = parentFieldName;
    entityName = ContainerApp.db.Entity(mainEntityName).relations[parentId].refEntityName;

}
else
{
    entityName = mainEntityName;
    fieldName = ContainerApp.db.Entity(mainEntityName).relations[fieldId].fieldName;
    value = v.values[ContainerApp.db.Entity(mainEntityName).relations[fieldId].refFieldName];
    fieldId = null;
}

return (fieldId, fieldName, entityName, value);

}

ivancas84 commented 1 year ago

Se incorporó EntityValues.ParentVariables y un extension method para obtener el key y value.