コード例 #1
0
        // внутренний вспомагательный метод для обновления задачи
        private void UpdateTaskHelper(DataBase db, TaskExDTO Task, bool UpdateStatement)
        {
            var task = db.Tasks.Where(t => t.Id == Task.Id).Single();

            task.Title              = Task.Title;
            task.Note               = Task.Note;
            task.TimeLimit_native   = Task.TimeLimit_native;
            task.TimeLimit_javavm   = Task.TimeLimit_javavm;
            task.TimeLimit_dotnet   = Task.TimeLimit_dotnet;
            task.TimeLimit_custom   = Task.TimeLimit_custom;
            task.MemoryLimit_native = Task.MemoryLimit_native;
            task.MemoryLimit_javavm = Task.MemoryLimit_javavm;
            task.MemoryLimit_dotnet = Task.MemoryLimit_dotnet;
            task.MemoryLimit_custom = Task.MemoryLimit_custom;
            task.OutputLimit        = Task.OutputLimit;
            task.CodeLimit          = Task.CodeLimit;
            task.Author             = Task.Author;
            task.TaskSource         = Task.TaskSource;
            task.TimeSolveProblem   = Task.TimeSolveProblem;
            task.CountTestToText    = Task.CountTestToText;
            task.EnableSend         = Task.EnableSend;
            task.EnableCheck        = Task.EnableCheck;
            if (UpdateStatement)
            {
                //task.UsePdfStatement = Task.UsePdfStatement;
                task.StatementPdf = Task.StatementPdf;
                task.Statement    = Task.Statement;
            }
        }
コード例 #2
0
        // обновить информацию о задаче(кроме текста, тестов и чекеров)
        public void UpdateTask(String SessionKey, TaskExDTO Task, bool UpdateStatement)
        {
            CheckSession(SessionKey);

            using (var db = new DataBase())
            {
                UpdateTaskHelper(db, Task, UpdateStatement);

                db.SaveChanges();
            }
            return;
        }
コード例 #3
0
        // обновить задачу
        public void UpdateTaskEx(String SessionKey, TaskExDTO Task, IEnumerable <TestDTO> Tests, bool AppendTests,
                                 bool UpdateTaskStatement, IEnumerable <CheckerDTO> Checkers, bool AppendCheckers)
        {
            CheckSession(SessionKey);

            using (var db = new DataBase())
            {
                UpdateTaskHelper(db, Task, UpdateTaskStatement); // обновим задачу

                // теперь приступим к тестам
                if (Tests != null && Tests.Count() > 0)
                {
                    if (AppendTests == false) // если не добавляем тесты - значит удалим существующий набор
                    {
                        foreach (var test in db.Tests.Where(t => t.TaskId == Task.Id))
                        {
                            db.DeleteObject(test);
                        }
                    }


                    foreach (var test in Tests)
                    {
                        db.Tests.AddObject(new Test
                        {
                            TaskId      = Task.Id,
                            InputData   = test.InputData,
                            PatternData = test.PatternData,
                            Number      = test.Number,
                            Multitest   = test.Multitest,
                            Enabled     = test.Enabled
                        });
                    }
                }

                // и не забудем про чекеры.
                // НЕ РЕАЛИЗОВАНО!!!!!

                db.SaveChanges();
            }
        }