예제 #1
0
        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);
                }
            }
        }