public List <Task> GetTasks(int userId) { List <Task> tasks = TaskRepository.GetItems().Include(x => x.Manager).Include(x => x.Creator).Include(x => x.Executor).Where(x => x.ManagerID == userId || x.ExecutorID == userId || x.CreatorID == userId).ToList(); foreach (var task in tasks) { Status oldStatus = task.CurrentStatus; task.ChangeStatus(); if (oldStatus != task.CurrentStatus) { StatusHistoryRepository.AddItem(new StatusHistory() { Status = task.CurrentStatus, TaskID = task.ID, TimeActivated = DateTime.Now }); } } TaskRepository.SaveChanges(); return(tasks); }