Beispiel #1
0
 public ScoresVM(ScoresDTO row)
 {
     Id      = row.Id;
     Score1  = row.Score1;
     Score2  = row.Score2;
     GameId  = row.GameId;
     Betdate = row.BetDate;
     UserId  = row.UserId;
 }
Beispiel #2
0
        public IActionResult CalculateScore([FromBody] FramesDTO ScoreRequest)
        {
            _logger.LogInformation(LogEvents.SubmitScore, "Calculating score");
            if (ScoreRequest.Frames.Count() < 1)
            {
                _logger.LogWarning(LogEvents.NoFramesPost, "Bad Request: No frames posted");
                return(BadRequest());
            }
            if (ScoreRequest.Frames.Count() > 10)
            {
                _logger.LogWarning(LogEvents.ToManyFramesPost, "Bad Request: To many frames posted");
                return(BadRequest());
            }

            for (var i = 0; i < ScoreRequest.Frames.Count; i++)
            {
                if (i != ScoreRequest.Frames.Count - 1)
                {
                    _bowlingGame.Frames.Add(new Frame
                    {
                        FirstScore  = ScoreRequest.Frames[i].First,
                        SecondScore = ScoreRequest.Frames[i].Second
                    });
                }
                else
                {
                    _bowlingGame.Frames.Add(new LastFrame
                    {
                        FirstScore  = ScoreRequest.Frames[i].First,
                        SecondScore = ScoreRequest.Frames[i].Second,
                        ThirdScore  = ScoreRequest.Frames[i].Third.HasValue ? ScoreRequest.Frames[i].Third.Value : 0
                    });
                }
            }

            // Calculate Score
            _bowlingGame.CalculateGameScore();
            var totalScore = _bowlingGame.GetTotalScore();
            var frames     = _bowlingGame.Frames;

            var results = new ScoresDTO(frames, totalScore);

            return(Ok(results));
        }
        public ActionResult SaveScore(ScoresVM model)
        {
            // Sprawdzenia model state
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            // zmniejszenie wyników meczu o jeden
            --model.Score1;
            --model.Score2;

            // Pobranie id użytkownika
            model.UserId = User.Identity.GetUserId();

            // Generowanie daty oddania głosu
            model.Betdate = DateTime.Now;


            using (Db db = new Db())
            {
                // Inicjalizacja PageDTO
                ScoresDTO dto = new ScoresDTO();

                ///////////////////
                #region TO USE VALIDATION
                //// gdy niemamy adresu strony to przypisujemy tytul
                //if (string.IsNullOrWhiteSpace(model.Slug))
                //{
                //    slug = model.Title.Replace(" ", "-").ToLower();
                //}
                //else
                //{
                //    slug = model.Slug.Replace(" ", "-").ToLower();
                //}

                //// zapobiegamy dodanie takiej samej nazwy strony
                //if (db.Pages.Any(x => x.Title == model.Title) || db.Pages.Any(x => x.Slug == slug))
                //{
                //    ModelState.AddModelError("", "Ten tytuł lub adres strony już istnieje.");
                //    return View(model);
                //}
                #endregion
                ///////////////////

                dto.Score1  = model.Score1;
                dto.Score2  = model.Score2;
                dto.GameId  = model.GameId;
                dto.BetDate = model.Betdate;
                dto.UserId  = model.UserId;

                // zapis DTO
                db.Scores.Add(dto);
                db.SaveChanges();
            }

            //utworzenie zmiennej sesyjnej

            Session["score"] = model.Score1.ToString() + " - " + model.Score2.ToString();

            return(RedirectToAction("LoadScore"));
        }