internal static void EditCompetition(int id, CompetitionModel model) { using (TopCoderPrototypeEntities entityModel = new TopCoderPrototypeEntities()) { Competition comp = entityModel.Competitions.Where(x => x.ID == id).FirstOrDefault(); if (comp != null) { comp.CategoryId = model.CategoryId; comp.Start = model.Start; comp.End = model.End; comp.Duration = model.Duration; comp.Name = model.Name; comp.Description = model.Description; } entityModel.SaveChanges(); entityModel.CompetetionsProblems.Where(x => x.CompetetionId == id).ToList() .ForEach(entityModel.CompetetionsProblems.DeleteObject); if (model.SelectedProblems != null) { foreach (var problem in model.SelectedProblems) { CompetetionsProblem cp = new CompetetionsProblem(); cp.CompetetionId = comp.ID; cp.ProblemId = problem; entityModel.CompetetionsProblems.AddObject(cp); } } entityModel.SaveChanges(); } }
public ActionResult EditCompetition(CompetitionModel model, int id) { DataHelper.EditCompetition(id, model); return RedirectToAction("Index"); }
public static Dictionary<Models.CompetitionModel, UserCompetitionState> GetAllCompetitions(string username) { using (TopCoderPrototypeEntities entityModel = new TopCoderPrototypeEntities()) { Dictionary<CompetitionModel, UserCompetitionState> result = new Dictionary<CompetitionModel, UserCompetitionState>(); foreach(Competition competition in entityModel.Competitions) { CompetitionModel model = new CompetitionModel() { EntityModel = competition }; UserCompetitionState state = UserCompetitionState.NotEnrolled; CompetitionsUser cuser = entityModel.CompetitionsUsers.Where(x => x.User.Username == username && x.CompetitionId == competition.ID).FirstOrDefault(); if (cuser == null) { state = UserCompetitionState.NotEnrolled; } else if (cuser.Start == null) { state = UserCompetitionState.NotStarted; } else if ((DateTime.Now - cuser.Start.Value) < TimeSpan.FromMinutes(competition.Duration)) { state = UserCompetitionState.InProgress; } else { state = UserCompetitionState.Ended; } result.Add(model, state); } return result; } }
public ActionResult CreateCompetition(CompetitionModel model) { DataHelper.AddNewCompetition(model); return RedirectToAction("Index"); }