public async Task <ActionResult> Login(string leagueKey, string hashedPassword) { //get the league, if not exist return notfound var league = await LeagueRepository.GetAsync(leagueKey); if (league == null) { return(new BadRequestObjectResult("failed")); } //check hashed password matches if not return error if (league.HashPassword != hashedPassword) { return(new BadRequestObjectResult("failed")); } //generate login key, insert into db var token = Guid.NewGuid().ToString(); var login = new Login(); login.LeagueId = league.LeagueId; login.LoginTimestamp = DateTime.Now; login.Expiry = DateTime.Now.AddHours(1); login.LoginKey = token; if (await LoginExistsForLeague(league.LeagueId)) { try { var oldLogin = await this.LoginRepository.GetAsync(league.LeagueId); oldLogin.LoginTimestamp = DateTime.Now; oldLogin.Expiry = DateTime.Now.AddHours(1); oldLogin.LoginKey = token; await this.LoginRepository.UpdateAsync(oldLogin); } catch (Exception ex) { // handle somehow } } else { await this.LoginRepository.AddAsync(login); } // return login key LoginObject loginSuccess = new LoginObject(login); loginSuccess.LeagueId = league.LeagueId; loginSuccess.LeagueName = league.LeagueName; loginSuccess.LeagueKey = league.LeagueKey; loginSuccess.Logo = league.Logo; return(new OkObjectResult(loginSuccess)); }
public async Task <string> GetLeagueId(string leagueKey) { var LeagueRepository = new LeagueRepository(this.ConnectionString); var league = await LeagueRepository.GetAsync(leagueKey); if (league == null) { return(null); } return(league.LeagueId.ToString()); }