コード例 #1
0
ファイル: UserSessions.cs プロジェクト: bjonnala/Movie-API
        public string updateAccessToken(int userId, string accessToken)
        {
            string status = "";

            try
            {
                using (MovieEntities db = new MovieEntities())
                {
                    var query = db.UsersSessions.Where(x => x.Users_ID == userId).FirstOrDefault();
                    if (query != null)
                    {
                        query.token       = accessToken;
                        query.createdDate = DateTime.UtcNow;
                        db.SaveChanges();
                    }
                    else
                    {
                        var usersession = new UsersSession();
                        usersession.Users_ID    = userId;
                        usersession.token       = accessToken;
                        usersession.createdDate = DateTime.UtcNow;

                        db.UsersSessions.Add(usersession);
                        db.SaveChanges();
                    }
                }
            }
            catch
            {
                status = "There seems to be an issue with updating access token. Please try again.";
            }

            return(status);
        }
コード例 #2
0
        internal bool Login(string username, string password)
        {
            string passwordHash = utils.HashPassword(password);

            userName         = username;
            userPasswordHash = passwordHash;
            Damocles2Entities de = new Damocles2Entities();
            User user            = de.Users.Where(u => u.Username == username && u.UserPassword == passwordHash).FirstOrDefault();

            if (user == null)
            {
                return(false);
            }

            CurrentUser.UserId = user.Id;

            //TODO: This is not functioning correctly - simply want the User's current rank.
            UserRank ur = de.UserRanks.Where(usr => usr.UserId == user.Id).FirstOrDefault();

            user.IsOnline = true;
            UserRank      = ur.Rank.RankNameEnglish;

            UserJurisdiction uj = de.UserJurisdictions.Where(usrj => usrj.UserId == user.Id).FirstOrDefault();

            if (uj != null)
            {
                if (uj.Jurisidction.Country == uj.Jurisidction.State)
                {
                    UJurisdiction = uj.Jurisidction.Country;
                }
                else
                {
                    UJurisdiction = uj.Jurisidction.State.Trim() + " in " + uj.Jurisidction.Country.Trim();
                }
            }
            else
            {
                UJurisdiction = "Unknown";
            }


            var aus = de.UsersSessions.Where(auss => auss.id == user.Id);

            foreach (UsersSession userS in aus)
            {
                CurrentUser.SessionSecondsTotal += userS.SessionSeconds;
            }

            UsersSession us = new UsersSession();

            us.LoggedOnAt = DateTime.UtcNow;
            us.id         = user.Id;
            de.UsersSessions.Add(us);

            de.SaveChanges();
            return(true);
        }
コード例 #3
0
        internal void LogOff()
        {
            Damocles2Entities de           = new Damocles2Entities();
            string            passwordHash = utils.HashPassword(CurrentUser.UserPassword);
            User u = de.Users.Where(usr => usr.Username == CurrentUser.Username && usr.UserPassword == passwordHash).FirstOrDefault();
            // UsersSession us = de.UsersSessions.Where(uss => uss.id == u.Id && uss.loggedOffAt == null)
            // v1.OrderByDescending(rec => rec.Id).FirstOrDefault();
            UsersSession us = de.UsersSessions.Where(uss => uss.id == u.Id && uss.loggedOffAt == null).OrderByDescending(ob => ob.LoggedOnAt).FirstOrDefault();

            us.loggedOffAt    = DateTime.UtcNow;
            us.SessionSeconds = CurrentUser.ThisSessionSeconds;
            u.IsOnline        = false;
            de.SaveChanges();
        }