public IActionResult Login(String name) { try { if (String.IsNullOrEmpty(name)) { throw new WebResponseException((int)WebResponseStatusCode.InvalidArgument, $"UserController.Login name argument is null or empty"); } if (mSession != null && mSession.RiotUser != null) { throw new WebResponseException((int)WebResponseStatusCode.AlreadyLoggedIn, $"UserController.Login alreay logged in - {mSession.RiotUser}"); } Summoner summoner = RiotApi.GetSummoner(name); League[] leagues = RiotApi.GetLeaguesBySummonerId(summoner.Id); RiotUser newUser = RiotUser.Create(summoner, leagues); CreateNewSession(newUser); return(new JsonResult(JsonConvert.SerializeObject(newUser))); } catch (WebResponseException e) { mLogger.LogError(e.Message); return(e.HttpRequestResult()); } catch (System.Exception e) { mLogger.LogError(e.Message); return(BadRequest()); } }
protected void CreateNewSession(RiotUser riotUser) { if (mSession != null) { mSessionManager.Delete(mSession.SessionId); } mSession = mSessionManager.Create(Guid.NewGuid(), riotUser); Response.Cookies.Append(SessionIdCookieName, mSession.SessionId.ToString()); }
public Session Create(Guid sessionId, RiotUser riotUser) { lock (mSync) { if (mSessions.ContainsKey(sessionId) == true) { return(mSessions[sessionId]); } var session = (Session)mIServiceProvider.GetService(typeof(Session)); session.SessionId = sessionId; session.LastAccessTime = DateTime.Now; session.RiotUser = riotUser; UserManager.AddUser(riotUser); mSessions.Add(sessionId, session); return(session); } }