private void DeleteExpiredServers(IUnitOfWork unitOfWork) { IDataRequest <ServerInfo> specification = new DataRequest <ServerInfo>(new ExpiredServerSpecification()); var servers = serverRepository.GetBySpecification(specification); foreach (ServerInfo serverInfo in servers) { unitOfWork.Delete(serverInfo); IDataRequest <TaskInfo> taskRequest = new DataRequest <TaskInfo>(new RunningTaskByServerIdSpecification(serverInfo.Id)); var tasks = taskRepository.GetBySpecification(taskRequest); foreach (TaskInfo taskInfo in tasks) { taskInfo.ServerId = 0; taskInfo.TaskState = TaskStates.New; unitOfWork.Update(taskInfo); } } }