示例#1
0
        public static MemberCreateStatus CreateChallenge(Member creator, ChallengeModel model, OnGameContext _db)
        {
            MemberCreateStatus success = MemberCreateStatus.UserRejected;

            try
            {
                DateTime date = DateTime.Parse(model.startDate);

                var gameModel = from g in _db.games
                                where g.ID == model.gameID
                                select g;
                Trace.WriteLine(gameModel.Count());

                Game game = gameModel.First();
                if (model.size == 1) // Player vs Player
                {
                    _db.challenges.Add(new Challenge
                    {
                        homeID = creator.ID,
                        size = model.size,
                        gameID = game,
                        price = model.price,
                        startDate = date,
                        comment = model.comment,
                        endDate = DateTime.Now,
                        status = 0
                    });
                    _db.SaveChanges();
                    Member newModel = _db.members.Find(creator.ID);
                    newModel.solde -= model.price;
                    _db.Entry(newModel).State = EntityState.Modified;
                    _db.SaveChanges();
                    success = MemberCreateStatus.Success;
                }
                else // Team vs Team
                {
                    _db.challenges.Add(new Challenge
                    {
                        homeID = model.teamID,
                        size = model.size,
                        gameID = game,
                        price = model.price,
                        startDate = date,
                        comment = model.comment,
                        endDate = DateTime.Now,
                        status = 0
                    });
                    _db.SaveChanges();
                    Team newModel = _db.teams.Find(model.teamID);
                    newModel.solde -= model.price;
                    _db.Entry(newModel).State = EntityState.Modified;
                    _db.SaveChanges();
                    success = MemberCreateStatus.Success;
                }
            }
            catch (Exception ex)
            {
                Trace.WriteLine(ex.StackTrace);
            }

            return success;
        }
示例#2
0
        public ActionResult CreateChallenge(ChallengeModel newChallenge)
        {
            if (Session["user"] != null)
            {
                if (ModelState.IsValid)
                {
                    if((newChallenge.size == 1 && newChallenge.teamID == 0) || (newChallenge.size != 1 && newChallenge.teamID != 0))
                    {
                        Boolean fundsClear = false;
                        if (newChallenge.size == 1)
                        {
                            Trace.WriteLine(((Member)Session["user"]).solde);
                            if (((Member)Session["user"]).solde >= newChallenge.price)
                            {
                                fundsClear = true;
                            }
                        }
                        else
                        {
                            var teamModel2 = from t in db.teams
                                             where t.ID == newChallenge.teamID
                                             select t;
                            Team currentTeam = teamModel2.First();
                            Trace.WriteLine(currentTeam.solde);
                            if (currentTeam.solde >= newChallenge.price)
                            {
                                fundsClear = true;
                            }
                        }

                        if(fundsClear){
                            Member user = (Member)Session["user"];
                            MemberCreateStatus createStatus;
                            createStatus = ChallengeManager.CreateChallenge(user, newChallenge, db);
                            if (createStatus == MemberCreateStatus.Success)
                            {
                                var _model = from c in db.challenges
                                             where c.homeID == user.ID
                                             select c;

                                Session["user"] = db.members.Find(user.ID);
                                Trace.WriteLine("Challenge has been created.");
                                //return RedirectToAction("ChallengeDetails", "Challenge", new { id = chal.ID });
                                return RedirectToAction("ChallengeList", "Challenge");
                            }
                            else
                            {
                                ModelState.AddModelError("", ErrorCodeToString(createStatus));
                                Trace.WriteLine("Challenge has not been created.");
                            }
                        }
                    }
                }
                return RedirectToAction("CreateChallenge", "Challenge");
            }
            return RedirectToAction("LogOn", "Account");
        }