Пример #1
0
        /// <summary>
        ///     获取 用户信息
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public static async Task <OperationResult <GetGameUserInfoResponse> > GetGameUserInfoAsync(
            GetGameUserInfoRequest request)
        {
            try
            {
                var manager = GameManagerFactory.GetGameManager(request.GameVersion);
                if (manager == null)
                {
                    // 未实现
                    return(OperationResult.FromError <GetGameUserInfoResponse>("-3", Resource.Invalid_Game_NotImpl));
                }

                return(OperationResult.FromResult(await manager.GetGameUserInfoAsync(request)));
            }
            catch (NotImplementedException e)
            {
                // 未实现
                return(OperationResult.FromError <GetGameUserInfoResponse>("-3", Resource.Invalid_Game_NotImpl));
            }
        }
        /// <summary>
        ///     获取 用户信息
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public virtual async Task <GetGameUserInfoResponse> GetGameUserInfoAsync(GetGameUserInfoRequest request)
        {
            try
            {
                var gameVersion = GameVersion;

                // 获取用户信息
                var taskUserInfo = DalGameUserInfo.GetGameUserInfoAsync(true, gameVersion, request.UserId);

                // 获取用户已领取奖品
                var taskUserPrizeList = DalGameUserPrize.GetGameUserPrizeAsync(true, gameVersion, request.UserId);

                await Task.WhenAll(taskUserInfo, taskUserPrizeList);

                var result = new GetGameUserInfoResponse();

                result.Point = taskUserInfo.Result?.Point ?? 0;

                result.PrizeItems = taskUserPrizeList
                                    .Result?
                                    .Select(p => new GetGameUserInfoResponsePrizeItems
                {
                    PrizeName      = p.PrizeName,
                    PrizePic       = p.PrizePicUrl,
                    PrizeDesc      = p.PrizeDesc,
                    PrizeTitle     = p.PrizeTitle,
                    PrizeStartTime = p.PrizeStartTime,
                    PrizeEndTime   = p.PrizeEndTime
                })
                                    .ToList();


                return(result);
            }
            catch (Exception e)
            {
                Logger.Error($"{ManagerName} -> GetGameUserInfoAsync -> {JsonConvert.SerializeObject(request)} ",
                             e.InnerException ?? e);
                throw;
            }
        }
Пример #3
0
 /// <summary>
 ///     获取 用户信息
 ///     -1 -2   程序异常
 ///     -3      此游戏未实现
 /// </summary>
 /// <param name="request"></param>
 /// <returns></returns>
 public async Task <OperationResult <GetGameUserInfoResponse> > GetGameUserInfoAsync(GetGameUserInfoRequest request)
 {
     return(await GameManager.GetGameUserInfoAsync(request));
 }