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); } }
public PersonApiController() { _personOrchestrator = new PersonOrchestrator(); }