Esempio n. 1
0
        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());
            }
        }
Esempio n. 2
0
        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());
        }
Esempio n. 3
0
        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);
            }
        }