Ejemplo n.º 1
0
        private void ShowAddTournamentDialog(object sender, EventArgs e)
        {
            AlertDialog.Builder inputDialog = new AlertDialog.Builder(this.Activity);
            inputDialog.SetTitle("Add Tournament");

            EditText userInput = new EditText(Activity)
            {
                Hint                 = "Enter Tournament Name",
                Top                  = 5,
                Focusable            = true,
                ShowSoftInputOnFocus = true
            };

            inputDialog.SetView(userInput);

            inputDialog.SetPositiveButton("Add", (senderAlert, args) => {
                var newtournamentKey = AddTournamentViewModel.AddTournament(userInput.Text);
                var detailActivity   = new Intent(this.Activity, typeof(TournamentDetailActivity));
                detailActivity.PutExtra("TournamentId", newtournamentKey);
                StartActivity(detailActivity);
            });
            inputDialog.SetNegativeButton("Cancel", (senderAlert, args) => {
                Toast.MakeText(this.Activity, "Canceled.", ToastLength.Short).Show();
            });
            inputDialog.Show();
        }
Ejemplo n.º 2
0
 public AddTournamentWindow()
 {
     DataContext = new AddTournamentViewModel();
     InitializeComponent();
 }
Ejemplo n.º 3
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));
            }
        }