示例#1
0
文件: Player.cs 项目: Ciractt/Kurkku
        /// <summary>
        /// Login handler
        /// </summary>
        /// <param name="ssoTicket">the sso ticket</param>
        /// <returns></returns>
        public bool TryLogin(string ssoTicket)
        {
            UserDao.Login(out playerData, ssoTicket);

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

            log = LogManager.GetLogger(Assembly.GetExecutingAssembly(), $"Player {playerData.Name}");
            log.Debug($"Player {playerData.Name} has logged in");

            UserSettingsDao.CreateOrUpdate(out settings, playerData.Id);
            PlayerManager.Instance.AddPlayer(this);

            playerData.PreviousLastOnline = playerData.LastOnline;
            playerData.LastOnline         = DateTime.Now;
            UserDao.Update(playerData);

            Subscription = SubscriptionDao.GetSubscription(playerData.Id);

            Messenger = new Messenger(this);
            Messenger.SendStatus();

            Authenticated = true;

            Send(new AuthenticationOKComposer());
            Send(new ActivityPointNotificationComposer());
            Send(new AvailabilityStatusComposer());
            Send(new UserRightsMessageComposer(IsSubscribed ? 2 : 0, playerData.Rank));

            return(true);
        }
示例#2
0
        private (string Title, List <Article> Articles) SubscribeFeed(string feed, string appId)
        {
            var result = this.fetcher.Fetch(feed);

            if (result == default)
            {
                return(result);
            }

            using (var connection = this.helper.GetDbConnection())
            {
                #region 插入 feed
                var feedDao    = new FeedDao(connection);
                var feedId     = feed.Md5();
                var feedEntity = feedDao.GetFeed(feedId);
                if (feedEntity == null)
                {
                    feedEntity = new Rss.Common.Entities.Feed
                    {
                        Id    = feedId,
                        Url   = feed,
                        Title = result.Title
                    };
                    feedDao.InsertFeed(feedEntity);
                }
                #endregion

                #region 订阅
                var subscriptionDao = new SubscriptionDao(connection);
                var subscription    = subscriptionDao.GetSubscription(appId, feedId);
                if (subscription == null)
                {
                    subscription = new Subscription
                    {
                        AppId  = appId,
                        FeedId = feedId
                    };
                    subscriptionDao.InsertSubscription(subscription);
                }
                #endregion
            }

            return(result);
        }
示例#3
0
 public Messenger(int userId)
 {
     subscription          = SubscriptionDao.GetSubscription(userId);
     FriendRequestsEnabled = MessengerDao.GetAcceptsFriendRequests(userId);
     LoadMessengerData(userId);
 }
示例#4
0
 public void Load()
 {
     this.Data = SubscriptionDao.GetSubscription(player.Details.Id);
 }