コード例 #1
0
ファイル: DataHelper.cs プロジェクト: stefan-avramov/Salata
 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();
     }
 }
コード例 #2
0
 public ActionResult EditCompetition(CompetitionModel model, int id)
 {
     DataHelper.EditCompetition(id, model);
     return RedirectToAction("Index");
 }
コード例 #3
0
ファイル: DataHelper.cs プロジェクト: stefan-avramov/Salata
        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;
            }
        }
コード例 #4
0
 public ActionResult CreateCompetition(CompetitionModel model)
 {
     DataHelper.AddNewCompetition(model);
     return RedirectToAction("Index");
 }