public IActionResult Index() { var model = new ContestViewModel(); model.Contests = _contestRepository.GetAllContests().OrderByDescending(d => d.Date).ToList(); return(View(model)); }
//[ValidateAntiForgeryToken] public IActionResult CreateContest() { var viewModel = new ContestViewModel(); return(View(viewModel)); }
public IActionResult Delete([FromForm] ContestViewModel contest) { //delete the user assigned to this contest from user contest var listOfParticipant = _userContestRepository.GetAll().Where(part => part.ContestId == contest.ContestId).ToList(); foreach (var item in listOfParticipant) { _userContestRepository.Delete(item); } //delete submission var listOfSubmission = _submisionContestRepository.GetAll().Where(subm => subm.ContestId == contest.ContestId).ToList(); foreach (var item in listOfSubmission) { _submisionContestRepository.Delete(item); } //delete problem assigned to a contest var listOfProblems = _problemContestRepository.GetAll().Where(prob => prob.ContestId == contest.ContestId).ToList(); foreach (var item in listOfProblems) { _problemContestRepository.Delete(item); } _contestRepository.Delete(contest.ContestId); _contestRepository.Save(); return(RedirectToAction(nameof(Index))); }
public IActionResult AddFish(ContestViewModel model) { var fish = new Fish(); fish.ParticipantId = model.ParticipantId; fish.Length = model.Fish.Length; _fishRepository.Add(fish); _fishRepository.Commit(); return(RedirectToAction("Contest", "Home", new { id = model.Id })); }
public IActionResult AddParticipant(ContestViewModel model) { var participant = new Participant(); participant.ContestId = model.Id; participant.Name = model.Participant.Name; _participantRepository.Add(participant); _participantRepository.Commit(); return(RedirectToAction("Contest", "Home", new { id = model.Id })); }
public ActionResult <Contest> Post([FromBody] ContestViewModel contest) { var newContest = new Contest { Id = contest.Id, Description = contest.Description, IsOpen = true }; rocketDbContext.Contests.Add(newContest); rocketDbContext.SaveChanges(); return(CreatedAtAction(nameof(Post), new { id = newContest.Id }, newContest)); }
public ActionResult Create() { var questions = _context.Questions.ToList(); var viewModel = new ContestViewModel() { SelectedQuestions = new List <KeyValuePair <Question, bool> >(), SelectedQuestion = string.Empty, Questions = questions }; return(View("ContestForm", viewModel)); }
//[ValidateAntiForgeryToken] public IActionResult CreateContest(ContestViewModel model) { if (ModelState.IsValid) { var newContest = new Contest(); newContest.Date = model.Date; newContest.Name = model.ContestName; newContest = _contestRepository.Add(newContest); _contestRepository.Commit(); return(RedirectToAction("Index", "Home", new { id = newContest.Id })); //Redirect till tävlingen } return(View(model)); }
public ActionResult RemoveQuestion(ContestViewModel viewModel) { if (!string.IsNullOrEmpty(viewModel.SelectedQuestion)) { KeyValuePair <Question, bool> selected = viewModel.SelectedQuestions.First(q => q.Key.Name == viewModel.SelectedQuestion); if (selected.Key != null) { viewModel.Questions.Add(selected.Key); viewModel.SelectedQuestions.Remove(selected); } viewModel.SelectedQuestion = string.Empty; ModelState.Clear(); } return(View("ContestForm", viewModel)); }
public ActionResult Edit(int id) { var contest = _context.Contests.Include(cq => cq.ContestQuestions).ThenInclude(cq => cq.Question).SingleOrDefault(c => c.Id == id); if (contest == null) { return(NotFound()); } var selectedQuestions = new List <KeyValuePair <Question, bool> >(); bool warning = false; foreach (var item in contest.ContestQuestions) { Question q = _context.Questions.SingleOrDefault(q => q.Id == item.QuestionId); var answerExists = _context.ContestQuestionUsers .Include(cqu => cqu.ContestQuestion) .Where(cqu => cqu.ContestQuestion.ContestId == id) .Where(cqu => cqu.ContestQuestion.QuestionId == q.Id) .Any(); if (answerExists) { warning = true; } //hodnota true znamená, že otázka už má záznam o odpovedi -> teda nebude možné ju vymazať selectedQuestions.Add(new KeyValuePair <Question, bool>(q, answerExists)); } //otazky ktore nie su este v sutazi -> vsetky - zvolene var notSelectedQuestions = _context.Questions.Where(q => !contest.ContestQuestions.Select(cq => cq.QuestionId).Any(cqID => q.Id == cqID)).ToList(); var viewModel = new ContestViewModel() { ContestId = contest.Id, ContestName = contest.Name, Warning = warning, SelectedQuestions = selectedQuestions, SelectedQuestion = string.Empty, Questions = notSelectedQuestions }; return(View("ContestForm", viewModel)); }
//[ValidateAntiForgeryToken] public IActionResult Contest(Guid id) { var theContest = _contestRepository.GetContestById(id); var participants = GetParticipantsByContestId(id); var fishes = _fishRepository.GetAllFishes(); var viewModel = new ContestViewModel { Id = theContest.Id, ContestName = theContest.Name, Date = theContest.Date, Species = theContest.Species, Participants = participants, Fishes = fishes.ToList() }; return(View(viewModel)); }
public IActionResult Edit([FromForm] ContestViewModel contest) { var contestToEdit = _contestRepository.GetItem(contest.ContestId); if (contestToEdit == null) { return(BadRequest("Nothing to edit")); } contestToEdit.Title = contest.Title; contestToEdit.Content = contest.Content; contestToEdit.StartDate = contest.StartDate; contestToEdit.EndDate = contest.EndDate; _contestRepository.Update(contestToEdit); _contestRepository.Save(); return(RedirectToAction(nameof(Index))); }
public ActionResult Create(ContestViewModel viewModel) { var contest = new Contest(); if (viewModel.ContestId != 0) { contest = _context.Contests.Include(cq => cq.ContestQuestions).SingleOrDefault(c => c.Id == viewModel.ContestId); _context.ContestQuestions.RemoveRange(contest.ContestQuestions); } contest.ContestQuestions = new List <ContestQuestion>(); contest.Name = viewModel.ContestName; var questions = _context.Questions.ToList(); int questionNumber = 1; for (int i = 0; i < viewModel.SelectedQuestions.Count; i++) { for (int j = 0; j < questions.Count; j++) { if (questions[j].Id == viewModel.SelectedQuestions[i].Key.Id) { contest.ContestQuestions.Add(new ContestQuestion() { Contest = contest, Question = questions[j], QuestionNumber = questionNumber }); questionNumber++; } } } if (viewModel.ContestId == 0) { _context.Contests.Add(contest); } _context.SaveChanges(); return(RedirectToAction("Index")); }
public ActionResult AddQuestion(ContestViewModel viewModel) { if (!string.IsNullOrEmpty(viewModel.SelectedQuestion)) { Question selected = viewModel.Questions.FirstOrDefault(q => q.Name == viewModel.SelectedQuestion); if (selected != null) { if (viewModel.SelectedQuestions == null) { viewModel.SelectedQuestions = new List <KeyValuePair <Question, bool> >(); } viewModel.SelectedQuestions.Add(new KeyValuePair <Question, bool>(selected, false)); viewModel.Questions.Remove(selected); } viewModel.SelectedQuestion = string.Empty; ModelState.Clear(); } return(View("ContestForm", viewModel)); }
public ActionResult Add(ContestViewModel model) { var loggedUserId = User.Identity.GetUserId(); var user = this.Data.Users.All().FirstOrDefault(u => u.Id == loggedUserId); if (user != null) { if (model == null) { return View(model); } if (!ModelState.IsValid) { return View(model); } var newContest = new Contest() { Title = model.Title, Description = model.Description, CreatorId = loggedUserId, CreatedOn = DateTime.Now, ClosesOn = model.ClosesOn, NumberOfAllowedParticipants = model.NumberOfAllowedParticipants, ParticipationStrategy = model.ParticipationStrategy, DeadlineStrategy = model.DeadlineStrategy, RewardStrategy = model.RewardStrategy, VotingStrategy = model.VotingStrategy }; user.CreatedContests.Add(newContest); this.Data.SaveChanges(); this.TempData["SuccessMessage"] = "Contest successfully created!"; return RedirectToAction("MyContests", "Home"); } return View(); }
public ActionResult DeleteUserAnswers(Contest contest, ContestViewModel viewModel) { var contestId = 0; if (contest.Id == 0) { contestId = viewModel.ContestId; } else { contestId = contest.Id; } var contextQuestionUsersDb = _context.ContestQuestionUsers .Include(cqu => cqu.ContestQuestion) .Where(cqu => cqu.ContestQuestion.ContestId == contestId) .ToList(); _context.RemoveRange(contextQuestionUsersDb); _context.SaveChanges(); return(RedirectToAction("Index")); }
public IActionResult Add([FromForm] ContestViewModel contest) { if (ModelState.IsValid) { var contestModel = new Contest { ContestId = Guid.NewGuid(), Content = contest.Content, StartDate = contest.StartDate, EndDate = contest.EndDate, StatusContest = ContestStatus.UnderConstruction.ToString(), Title = contest.Title, }; _contestRepository.Create(contestModel); _contestRepository.Save(); //send mail to all the registered user with the contest //InformUsersNewContest(contest.Title); return(RedirectToAction(nameof(Index))); } return(View()); }
public ActionResult AddContest(ContestViewModel contest) { var loggedUserId = User.Identity.GetUserId(); var user = this.Data.Users.All().FirstOrDefault(u => u.Id == loggedUserId); if (user != null) { if (!ModelState.IsValid) { return View(contest); } if (contest == null) { return View(contest); } var newContest = new Contest() { Title = contest.Title, Description = contest.Description, CreatorId = loggedUserId, CreatenOn = DateTime.Now, ClosesOn = contest.ClosesOn, NumberOfAllowedParticipants = contest.NumberOfAllowedParticipants, ParticipationStrategy = contest.ParticipationStrategy, DeadlineStrategy = contest.DeadlineStrategy, RewardStrategy = contest.RewardStrategy, VotingStrategy = contest.VotingStrategy, }; user.CreatedContests.Add(newContest); this.Data.SaveChanges(); } TempData["contest"] = contest.Title; return View(); }
public ActionResult Delete(ContestViewModel model) { Contest contest = this.Data.Contests.GetById(model.Id); if (contest == null) { return HttpNotFound(); } if (contest.Owner != this.UserProfile) { return new HttpStatusCodeResult(HttpStatusCode.BadRequest, "You cannot delete a contest which is not yours."); } this.Data.Contests.Delete(contest); this.Data.SaveChanges(); return RedirectToAction("Index", "Contests", new { id = model.Id }); }
public ActionResult Update(ContestViewModel model) { var contest = this.Data.Contests.GetById(model.Id); if (ModelState.IsValid) { if (contest == null) { return this.HttpNotFound(); } if (contest.OwnerId != this.UserProfile.Id) { return new HttpStatusCodeResult(HttpStatusCode.BadRequest, "You cannot edit a contest which is not yours."); } contest.Title = model.Title; contest.Description = model.Description; contest.IsClosedForSubmissions = model.IsClosedForSubmissions; contest.IsClosedForVoting = model.IsClosedForVoting; this.Data.SaveChanges(); return this.RedirectToAction("Details", new { id = contest.Id }); } return View("Edit", model); }
public ContestsController(IContest repo) { this._repo = repo; this.vm = new ContestViewModel(_repo); }