public session GetSession(HttpContextBase httpContext, bool checkUser, bool checkAdmin)
        {
            HttpCookie cookie = httpContext.Request.Cookies.Get(SessionName);
            session    result;
            string     _sessionID;
            Guid       _sessionGUID;

            if (cookie != null)//checks if cookie is null
            {
                _sessionID = cookie.Value;
                if (Guid.TryParse(_sessionID, out _sessionGUID))
                {
                    if (_sessionGUID != null)//checks if Guid is null
                    {
                        var     sessionList = sessions.GetAll();
                        session _session    = new session();
                        bool    tryResult   = false;

                        try //checks if Guid is in database
                        {
                            _session  = sessionList.Where(s => s.sessionGUID.Contains(_sessionID)).FirstOrDefault();
                            tryResult = !(_session.Equals(default(session)));
                        }
                        catch (Exception e)
                        {
                            Console.WriteLine("An error occurred: '{0}'", e);
                        }

                        if (tryResult)//session found in database
                        {
                            //Redirect to login page if user is not authorized
                            if (checkUser || checkAdmin)
                            {
                                RedirectUser(_session, httpContext, checkAdmin);
                            }
                            cookie.Expires = DateTime.Now.AddDays(1);//update cookie expiry date
                            return(_session);
                        }
                        ;
                    }
                }
            }
            //Session not found, create new
            result = createNewSession(httpContext);

            return(result);
        }