public void TransferFromAdvanceToEr(int id) { List <ExpenseReport> advances = GetAdvances(); ExpenseReport expenseReport = GetExpenseReport(id); foreach (ExpenseReport er in advances) { if (er.Collaborator == expenseReport.Collaborator) { foreach (ExpenseLine el in er.ExpenseLines.ToList()) { if (el.Validated /*&& el.Mission.Status == MissionStatus.COMPLETED*/) //To check { expenseReport.Collaborator.AdvanceCost += el.Cost; expenseReport.AddLine(el); er.RemoveLine(el); } } if (er.ExpenseLines.Count == 0) { Db.ExpenseReports.Remove(er); Db.SaveChanges(); } } } }