public async Task <bool> UpdateExistingRoundAsync(Round round, IDataStore dataStore,
                                                          string userGettingRound, string roundNotes)
        {
            var roundDoneBy = await dataStore.GetUserBySimpleIdAsync(userGettingRound);

            if (roundDoneBy == null)
            {
                return(false);
            }

            var roundDetail = new RoundDetail
            {
                Id         = Guid.NewGuid(),
                CreatedUtc = DateTime.UtcNow,
                RoundNotes = roundNotes,
                Round      = round,
                RoundBy    = new RoundUser
                {
                    Id   = Guid.NewGuid(),
                    User = roundDoneBy
                }
            };

            await dataStore.CreateAsync(roundDetail);

            var updatedUsers = await UpdateUsersFromNewRound(round, dataStore);

            updatedUsers.ForEach(x => dataStore.UpdateAsync(x));

            return(true);
        }
        public ActionResult PostScorecard([Bind(Exclude = "RoundDetailId")] Scorecard scorecard)
        {
            if (ModelState.IsValid)
            {
                int totalScore = 0;
                for (int i = 0; i < scorecard.Details.Count; i++)
                {
                    var detail = new RoundDetail();
                    detail.RoundDetailId = db.RoundDetails.Max(x => x.RoundDetailId) + 1;
                    detail.RoundId       = scorecard.Round.RoundId;
                    detail.HoleId        = scorecard.Holes[i].HoleId;
                    detail.Score         = scorecard.Details[i].Score;
                    detail.Putts         = scorecard.Details[i].Putts;
                    detail.GIR           = scorecard.Details[i].GIR;
                    detail.FIR           = scorecard.Details[i].FIR;
                    totalScore          += Convert.ToInt32(detail.Score);
                    db.RoundDetails.Add(detail);
                    db.SaveChanges();
                }

                Round round = db.Rounds.Find(scorecard.Round.RoundId);
                round.RoundId    = round.RoundId;
                round.TotalScore = totalScore;
                db.SaveChanges();

                return(RedirectToAction("Index", "RoundDetails"));
            }

            return(View(scorecard));
        }
Exemple #3
0
        public ActionResult Save(Round round)
        {
            if (!ModelState.IsValid)
            {
                var viewModel = new RoundViewModel
                {
                    Categories = _context.Categories.ToList(),
                    Round      = round
                };
            }

            _context.Rounds.Add(round);
            _context.SaveChanges();

            //Prepare details for candidates
            var lastRound  = _context.Rounds.OrderByDescending(r => r.Id).FirstOrDefault();
            var candidates = _context.Candidates
                             .Where(r => r.CandidacyId == lastRound.CandidacyId && r.Period == lastRound.Period)
                             .ToList();

            foreach (var c in candidates)
            {
                var roundDetail = new RoundDetail();

                roundDetail.IdHeader    = lastRound.Id;
                roundDetail.CandidateId = c.Id;
                roundDetail.Votes       = 0;

                _context.RoundsDetail.Add(roundDetail);
            }

            _context.SaveChanges();

            return(RedirectToAction("Index"));
        }
        public ActionResult DeleteConfirmed(int id)
        {
            RoundDetail roundDetail = db.RoundDetails.Find(id);

            db.RoundDetails.Remove(roundDetail);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
 public ActionResult Edit([Bind(Include = "RoundDetailId,RoundId,HoleId,Score,Putts,GIR,FIR")] RoundDetail roundDetail)
 {
     if (ModelState.IsValid)
     {
         db.Entry(roundDetail).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     ViewBag.RoundId = new SelectList(db.Rounds, "RoundId", "RoundId", roundDetail.RoundId);
     return(View(roundDetail));
 }
        // GET: RoundDetails/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            RoundDetail roundDetail = db.RoundDetails.Find(id);

            if (roundDetail == null)
            {
                return(HttpNotFound());
            }
            return(View(roundDetail));
        }
        // GET: RoundDetails/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            RoundDetail roundDetail = db.RoundDetails.Find(id);

            if (roundDetail == null)
            {
                return(HttpNotFound());
            }
            ViewBag.RoundId = new SelectList(db.Rounds, "RoundId", "RoundId", roundDetail.RoundId);
            return(View(roundDetail));
        }