The logic is working and correct. I want to know if someone could help me write this in a clean robust way. I want short the lines of code if possible
private DataTable AdjustTimesheetHours()
{
ColorDataSet.Tables[PrimaryTable].Columns.Add("adjustedHours");
foreach (var datarow in ColorDataSet.Tables[SummaryTable].AsEnumerable())
{
string empno = datarow.Field("empno");
double diffHours = datarow.Field("diffHours");
var query = ColorDataSet.Tables[PrimaryTable].AsEnumerable().Where(s => s.Field("empno")
== empno && s.Field("task")
== "Regular" && s.Field("hrs") >= diffHours)
.OrderByDescending(s => s.Field("hrs"))
.FirstOrDefault();
double adjustedHours = 0;
if (diffHours > 0)
{
if (query.Field("hrs") >= diffHours)
{
double hours = query.Field("hrs");
string project = query.Field("project");
string task = query.Field("task");
adjustedHours = hours - diffHours;
//Update datatable with adjusted hours
ColorDataSet.Tables[PrimaryTable].AsEnumerable().Where(row => row.Field("empno") == empno && row.Field("project")
== project && row.Field("hrs")
== hours && row.Field("task") == task)
.Select(b => b["adjustedHours"] = adjustedHours)
.ToList();
}
}
}
return ColorDataSet.Tables[PrimaryTable];
}
Replies
Know the answer? Post it — somebody with the same question will find it here.