Exemple #1
0
        public async Task <string> UpdateHighscore(string email, string newHighscore)
        {
            decimal newHighscoreDecimal = decimal.Parse(newHighscore);

            PersonOrchestrator     pO = new PersonOrchestrator();
            List <PersonViewModel> currentPeopleInDatabase = await pO.GetAllPeople();

            PersonViewModel currentPerson = currentPeopleInDatabase.Find(x => x.Email.Equals(email));

            List <HighScoreViewModel> currentHighscores = GetAllHighscores();
            HighScoreViewModel        inDatabase        = currentHighscores.Find(x => x.PersonId.Equals(currentPerson.PersonId));

            if (inDatabase == null || inDatabase.PersonId == Guid.Empty)
            {
                var result = await CreateHighscore(currentPerson.PersonId, email, newHighscoreDecimal);

                return(result);
            }
            else if (inDatabase.Email == email)
            {
                var result = await _highScoreOrchestrator.UpdateHighscore(new HighScoreViewModel
                {
                    HighscoreId  = inDatabase.HighscoreId,
                    PersonId     = inDatabase.PersonId,
                    Email        = email,
                    Score        = newHighscoreDecimal,
                    DateAttained = DateTime.Now
                });

                return(result);
            }
            else
            {
                var result = await CreateHighscore(inDatabase.PersonId, email, newHighscoreDecimal);

                return(result);
            }
        }
Exemple #2
0
 public PersonApiController()
 {
     _personOrchestrator = new PersonOrchestrator();
 }