Пример #1
0
        public ActionResult EditTask(ManageTaskViewModel model)
        {
            var dbModel = new Tasks
            {
                Title = model.Title,
                Description = model.Description,
                StartDate = model.StartDate.Add(model.StartTime),
                EndDate = model.EndDate.Add(model.EndTime),
                Example = model.Example,
                Input = model.Input,
                Id = model.TaskId,
                InputDataTypeId = model.InputDataId,
                Output = model.Output,
                MaxExecuteMemory = model.MaxExecutedMemory,
                MaxExecuteTime = model.MaxExecutedTime
            };

            if (model.PDF != null)
            {
                byte[] newPDF = new byte[model.PDF.ContentLength];
                model.PDF.InputStream.Read(newPDF, 0, model.PDF.ContentLength);

                dbModel.PDF = newPDF;
            }

            bool result = _tournamentManager.EditTask(dbModel);

            if (result)
                TempData["Alert"] = SetAlert.Set("Poprawnie edytowano: " + dbModel.Title, "Sukces", AlertType.Success);
            else
                TempData["Alert"] = SetAlert.Set("Wystąpił błąd. Spróbuj ponownie później!", "Błąd", AlertType.Danger);

            return RedirectToAction("Index");
        }
Пример #2
0
        public async Task<ActionResult> AddTournament(AddTournamentViewModel viewModel)
        {
            if (ModelState.IsValid)
            {
                int[] taskCountPerPhase = new int[viewModel.Phases.Count];
                for (int i = 0; i < taskCountPerPhase.Length; i++)
                    taskCountPerPhase[i] = viewModel.TaskContainer[i].Tasks.Count;

                DAL.Tables.Tournament tour = new DAL.Tables.Tournament
                {
                    Title = viewModel.Tournament.Title,
                    Description = viewModel.Tournament.Description,
                    StartDate = viewModel.Tournament.StartDate.Add(viewModel.Tournament.StartTime),
                    EndDate = viewModel.Tournament.EndDate.Add(viewModel.Tournament.EndTime),
                    MaxUsers = viewModel.Tournament.MaxUsers
                };

                List<Phase> phases = new List<Phase>();

                viewModel.Phases.ForEach(x =>
                {
                    phases.Add(new Phase
                    {
                        MaxUsers = x.MaxUsers,
                        Name = x.Name,
                        Order = x.Order,
                        MaxTasks = x.TaskCount
                    });
                });

                List<Tasks> tasks = new List<Tasks>();

                viewModel.TaskContainer.ForEach(x =>
                {
                    x.Tasks.ForEach(y =>
                    {
                        var task = new Tasks
                        {
                            Title = y.Title,
                            Order = y.Order,
                            Description = y.Description,
                            EndDate = y.EndDate.Add(y.EndTime),
                            StartDate = y.StartDate.Add(y.StartTime),
                            Input = y.Input,
                            Output = y.Output,
                            Example = y.Example,
                            MaxExecuteMemory = y.MaxExecutedMemory,
                            MaxExecuteTime = y.MaxExecutedTime,
                            InputDataTypeId = y.InputDataId
                        };

                        if (y.PDF != null)
                        {
                            byte[] pdf = new byte[y.PDF.ContentLength];
                            y.PDF.InputStream.Read(pdf, 0, y.PDF.ContentLength);
                            task.PDF = pdf;
                        }

                        tasks.Add(task);
                    });
                });

                bool result = await _tournamentManager.AddTournamnetAsync(tour, phases, tasks, taskCountPerPhase);

                if (result)
                {
                    TempData["Alert"] = SetAlert.Set("Poprawnie dodano turniej! Teraz skonfiguruj dane testowe do poszczególnych zadań, by móc poprawnie aktywować turniej.", "Sukces", AlertType.Info);
                    return RedirectToAction("Index");
                }
                else
                {
                    TempData["Alert"] = SetAlert.Set("Wystąpił błąd z bazą danych. Spróbuj ponownie później.", "Błąd", AlertType.Danger);
                    return View(viewModel);
                }
            }
            else
            {
                TempData["Alert"] = SetAlert.Set("Wystąpił błąd, proszę sprawdź wszystkie kroki.", "Błąd!", AlertType.Danger);
                return View(viewModel);
            }
        }
Пример #3
0
        public bool EditTask(Tasks model)
        {
            bool result = _tournamentRepository.EditTask(model);

            return result;
        }
Пример #4
0
        public bool EditTask(Tasks model)
        {
            try
            {
                var dbModel = _context.Tasks.Find(model.Id);

                dbModel.Title = model.Title;
                dbModel.Description = model.Description;
                dbModel.StartDate = model.StartDate;
                dbModel.EndDate = model.EndDate;
                dbModel.Input = model.Input;
                dbModel.Output = model.Output;
                dbModel.MaxExecuteMemory = model.MaxExecuteMemory;
                dbModel.MaxExecuteTime = model.MaxExecuteTime;
                dbModel.Example = model.Example;
                dbModel.InputDataTypeId = model.InputDataTypeId;

                if (model.PDF != null)
                    dbModel.PDF = model.PDF;

                _context.SaveChanges();
                return true;
            }
            catch { return false; }
        }