Simbios
asked on
Questions Tags Users Badges Unanswered Ask Question
I have the following datatable, which has Units information. The Units have a surface in square meters. However the units can be split into subunits, in the datatable there is a ParentUnitID to know if that unit is splitted or not.
I need to validate that the sum of the surface of the child units, is equal to the surface of the parent unit.
bWJwN.png
In anoter forum they helped me with this code
However I got this error.
dlaxL.png
I need to validate that the sum of the surface of the child units, is equal to the surface of the parent unit.
bWJwN.png
In anoter forum they helped me with this code
var childrenByParentID = _unitDataSet.Unit.AsEnumerable().
GroupBy(child => child.Field<int?>("ParentUnitId")).
ToDictionary(group => group.Key);
// Parents = children with no parent
var parents = childrenByParentID[null];
// Look for the first group which sum of surfaces is not the same as the parent's surface
var invalidGroup = childrenByParentID.FirstOrDefault(group =>
{
bool invalid = false;
if (group.Key != null)
{
// Not the parents group
var parent = parents.Single(parent => parent.Field<int>("UnitID") == group.Key);
var totalSurface = group.Sum(group => group.Field<int>("Surface"));
invalid = (totalSurface != parent.Field<int>("Surface"));
}
return invalid;
});
if (invalidGroup != null)
{
// .. do something special
}
However I got this error.
dlaxL.png
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.