Exemple #1
0
        public ActionResult DoLogin()
        {
            string res = JsonStringResult.VerifyFail();

            try
            {
                if (GeetestValidate.Validate())
                {
                    CUsers user = UsersBll.Instance.Login(Request["LoginName"].TryParseString(), Request["Password"].TryParseString());
                    if (user != null)
                    {
                        string userJson = JsonConvert.SerializeObject(user, new JsonSerializerSettings
                        {
                            DateFormatString = "yyyy-MM-dd HH:mm:ss"
                        });
                        CookieHelper.SetCookie("User", userJson, DateTime.Now.AddDays(30));
                        res = JsonStringResult.SuccessResult();
                    }
                    else
                    {
                        res = JsonStringResult.Error(OperateResCodeEnum.用户名或密码错误);
                    }
                }
                else
                {
                    res = JsonStringResult.Error(OperateResCodeEnum.验证码错误);
                }
            }
            catch (Exception ex)
            {
                res = JsonStringResult.Error(OperateResCodeEnum.内部错误);
            }
            return(Content(res));
        }
        public override void OnException(ExceptionContext filterContext)
        {
            HS_ErrRec ex = new HS_ErrRec();

            try
            {
                ContentResult contentResult = new ContentResult();
                contentResult.Content          = JsonStringResult.Error(OperateResCodeEnum.内部错误);
                filterContext.Result           = contentResult;
                filterContext.ExceptionHandled = true;

                ex.Action     = (filterContext.RouteData.Values["action"]).ToString();
                ex.AddTime    = DateTime.Now;
                ex.Controller = (filterContext.RouteData.Values["controller"]).ToString();
                ex.ErrorMsg   = filterContext.Exception.Message;
                ex.IP         = StringUtil.GetIP();
                ex.StackTrace = filterContext.Exception.StackTrace;
                ex.Arguments  = "";
                ex.DataSource = (int)DataSourceEnum.API;
                ErrRecBll.Instance.AsyncInsert(ex);

                DataExchangeBll.Instance.AsyncInsert((filterContext.RouteData.Values["action"]).ToString(), (filterContext.RouteData.Values["controller"]).ToString(),
                                                     filterContext.Controller.TempData["fullData"].TryParseString(), contentResult.Content);
            }
            catch (Exception ep)
            {
            }
            //filterContext.HttpContext.Response.Clear();
            //filterContext.HttpContext.Response.StatusCode = 200;
            //filterContext.HttpContext.Response.TrySkipIisCustomErrors = true;
        }
        public override void OnException(ExceptionContext filterContext)
        {
            HS_ErrRec ex = new HS_ErrRec();

            try
            {
                ContentResult contentResult = new ContentResult();
                contentResult.Content          = JsonStringResult.Error(OperateResCodeEnum.内部错误);
                filterContext.Result           = contentResult;
                filterContext.ExceptionHandled = true;

                ex.Action     = (filterContext.RouteData.Values["action"]).ToString();
                ex.AddTime    = DateTime.Now;
                ex.Controller = (filterContext.RouteData.Values["controller"]).ToString();
                ex.ErrorMsg   = filterContext.Exception.Message;
                ex.IP         = StringUtil.GetIP();
                ex.StackTrace = filterContext.Exception.StackTrace;
                ex.Arguments  = "";
                ex.DataSource = (int)DataSourceEnum.Web;
                ErrRecBll.Instance.AsyncInsert(ex);
            }
            catch (Exception ep)
            {
            }
        }
Exemple #4
0
        public ActionResult DoRegister()
        {
            string res = JsonStringResult.VerifyFail();

            try
            {
                if (GeetestValidate.Validate())
                {
                    res = UsersBll.Instance.Register(Request["UserName"].TryParseString(), Request["Password"].TryParseString(), Request["Mobile"].TryParseString(),
                                                     Request["InvitationCode"].TryParseString(), Request["NickName"].TryParseString());
                    var objRes = JsonConvert.DeserializeObject <APIResultBase>(res);
                    if (objRes.code == (int)OperateResCodeEnum.成功)
                    {
                        string user = JsonConvert.SerializeObject(UsersBll.Instance.GetUserByUserName(Request["UserName"].TryParseString()), new JsonSerializerSettings
                        {
                            DateFormatString = "yyyy-MM-dd HH:mm:ss"
                        });
                        CookieHelper.SetCookie("User", user, DateTime.Now.AddDays(30));
                    }
                }
                else
                {
                    res = JsonStringResult.Error(OperateResCodeEnum.验证码错误);
                }
            }
            catch (Exception ex)
            {
                res = JsonStringResult.Error(OperateResCodeEnum.内部错误);
            }
            return(Content(res));
        }
        public string Online(string param)
        {
            JObject jobj      = JObject.Parse(param);
            string  userCode  = jobj["UserCode"].TryParseString();
            string  userName  = jobj["NickName"].TryParseString();
            string  password  = jobj["Password"].TryParseString();
            string  tableCode = jobj["TableCode"].Value <string>();

            var textRes = GameTableBll.Instance.ZhanZuoEr(tableCode, userCode, password);

            if (textRes.code != (int)OperateResCodeEnum.成功)
            {
                return(JsonConvert.SerializeObject(textRes));
            }

            HS_GameTable table = GameTableBll.Instance.GetTable(tableCode);

            if (table != null)
            {
                // 查询用户。
                //var user = GameRecordBll.GetUser(userCode, table.TableCode);
                //var record = ((APISingleModelResult<FF_GameRecord>)textRes).data;

                Groups.Add(Context.ConnectionId, table.TableCode);
                //UserContextProxy.SetUser(user);

                var record = GameRecordBll.Instance.GetUser(userCode, tableCode);
                SendOnlineNotice(record, table.TableCode, "用户:" + userName + "进入房间");
            }
            else
            {
                return(JsonStringResult.VerifyFail());
            }
            return(JsonConvert.SerializeObject(textRes));
        }
        /// <summary>
        /// 装备一件装备
        /// </summary>
        /// <param name="gameCode"></param>
        /// <param name="userCode"></param>
        /// <param name="cardInGameCode"></param>
        /// <param name="target"></param>
        /// <returns></returns>
        public APIResultBase LoadEquip(string gameCode, string userCode, string cardInGameCode)
        {
            string         res = JsonStringResult.VerifyFail();
            Controler_Base ctl = Validate(gameCode, userCode);

            if (ctl == null)
            {
                return(JsonModelResult.PackageFail(OperateResCodeEnum.查询不到需要的数据));
            }
            if (VictoryValidate(ctl.GameContext))
            {
                return(JsonModelResult.PackageFail(OperateResCodeEnum.游戏已经结束));
            }
            var player = ctl.GameContext.GetActivationUserContext();

            if (player == null || player.UserCode != userCode)
            {
                return(JsonModelResult.PackageFail(OperateResCodeEnum.查询不到需要的数据));
            }

            if (ctl.GameContext.AllCard.Any(c => c != null && c.CardInGameCode == cardInGameCode && c.CardType == CardType.装备) == false)
            {
                return(JsonModelResult.PackageFail(OperateResCodeEnum.查询不到需要的数据));
            }

            BaseHero hero = ctl.GameContext.GetHeroByActivation(player.IsActivation);
            Card     card = player.HandCards.First(c => c.CardInGameCode == cardInGameCode);

            if (player.Power < card.Cost)
            {
                return(JsonModelResult.PackageFail(OperateResCodeEnum.没有足够的法力值));
            }
            ctl.LoadEquip(hero, card as BaseEquip);
            return(JsonModelResult.PackageSuccess(_gameCache.GetContext(ctl.GameContext.GameCode).Output()));
        }
        /// <summary>
        /// 使用英雄技能
        /// </summary>
        /// <param name="gameCode"></param>
        /// <param name="userCode"></param>
        /// <param name="target"></param>
        /// <returns></returns>
        public APIResultBase CastHeroPower(string gameCode, string userCode, int target = -1)
        {
            string         res = JsonStringResult.VerifyFail();
            Controler_Base ctl = Validate(gameCode, userCode);

            if (ctl == null)
            {
                return(JsonModelResult.PackageFail(OperateResCodeEnum.查询不到需要的数据));
            }
            if (VictoryValidate(ctl.GameContext))
            {
                return(JsonModelResult.PackageFail(OperateResCodeEnum.游戏已经结束));
            }
            var player = ctl.GameContext.GetActivationUserContext();

            if (player == null || player.UserCode != userCode || player.RemainingHeroPowerCastCount < 1)
            {
                return(JsonModelResult.PackageFail(OperateResCodeEnum.查询不到需要的数据));
            }

            BaseHero hero = ctl.GameContext.GetHeroByActivation();

            if (player.Power < (hero.CardAbility as IHeroAbility).Cost)
            {
                return(JsonModelResult.PackageFail(OperateResCodeEnum.没有足够的法力值));
            }

            ctl.CastHeroPower(hero, target);
            return(JsonModelResult.PackageSuccess(_gameCache.GetContext(ctl.GameContext.GameCode).Output()));
        }
        public string GetRoomUsers(string param)
        {
            JObject jobj     = JObject.Parse(param);
            string  gameCode = jobj["TableCode"].TryParseString();
            var     room     = GameRecordBll.Instance.GetUsers(gameCode);

            return(JsonStringResult.SuccessResult(room));
        }
Exemple #9
0
        public ActionResult ValidateUserName()
        {
            string res   = JsonStringResult.VerifyFail();
            var    param = JObject.Parse(TempData["param"].TryParseString());

            res = UsersBll.Instance.IsRepeat(param["UserName"].TryParseString()) ? JsonStringResult.Error(OperateResCodeEnum.用户名重复) : JsonStringResult.SuccessResult();
            return(Content(res));
        }
Exemple #10
0
        public ActionResult ValidateCode()
        {
            string res = JsonStringResult.Error(OperateResCodeEnum.验证码错误);

            if (GeetestValidate.Validate())
            {
                res = JsonStringResult.SuccessResult();
            }
            return(Content(res));
        }
Exemple #11
0
        public async Task <string> ReadContent(JsonStringResult result)
        {
            var httpResponse = await result.ExecuteAsync(new CancellationToken());

            var content = httpResponse.Content as StringContent;

            // Assert
            Assert.IsNotNull(content);
            return(await content.ReadAsStringAsync());
        }
        /// <summary>
        /// 随从发起攻击
        /// </summary>
        /// <param name="gameCode"></param>
        /// <param name="userCode"></param>
        /// <param name="cardInGameCode"></param>
        /// <param name="target"></param>
        /// <returns></returns>
        public APIResultBase ServantAttack(string gameCode, string userCode, string cardInGameCode, int target)
        {
            string         res = JsonStringResult.VerifyFail();
            Controler_Base ctl = Validate(gameCode, userCode);

            if (ctl == null)
            {
                return(JsonModelResult.PackageFail(OperateResCodeEnum.查询不到需要的数据));
            }
            if (VictoryValidate(ctl.GameContext))
            {
                return(JsonModelResult.PackageFail(OperateResCodeEnum.游戏已经结束));
            }
            var player = ctl.GameContext.GetActivationUserContext();

            if (player == null || player.UserCode != userCode)
            {
                return(JsonModelResult.PackageFail(OperateResCodeEnum.查询不到需要的数据));
            }

            if (ctl.GameContext.DeskCards.Any(c => c != null && c.CardInGameCode == cardInGameCode) == false)
            {
                return(JsonModelResult.PackageFail(OperateResCodeEnum.查询不到需要的数据));
            }

            if (player.IsFirst && target < 8)
            {
                return(JsonModelResult.PackageFail(OperateResCodeEnum.参数错误));
            }
            else if (player.IsFirst == false && target > 7)
            {
                return(JsonModelResult.PackageFail(OperateResCodeEnum.参数错误));
            }

            BaseServant servant = ctl.GameContext.DeskCards.First(c => c != null && c.CardInGameCode == cardInGameCode) as BaseServant;

            if (servant.RemainAttackTimes < 1)
            {
                return(JsonModelResult.PackageFail(OperateResCodeEnum.查询不到需要的数据));
            }

            if (ctl.GameContext.DeskCards[target].HasTaunt == false)
            {
                List <BaseBiology> taunts = ctl.GameContext.DeskCards.GetDeskCardsByIsFirst(player.IsFirst ? false : true).Where(c => c != null && c.HasTaunt).ToList();
                for (int i = 0; i < taunts.Count; i++)
                {
                    if (taunts[i].HasTaunt && i != target)
                    {
                        return(JsonModelResult.PackageFail(OperateResCodeEnum.你必须先攻击有嘲讽技能的随从));
                    }
                }
            }
            ctl.ServantAttack(servant, target);
            return(JsonModelResult.PackageSuccess(_gameCache.GetContext(ctl.GameContext.GameCode).Output()));
        }
        public ActionResult GetSaloons()
        {
            var param    = JObject.Parse(TempData["param"].TryParseString());
            int PageSize = param["PageSize"].TryParseInt();
            int PageNo   = param["PageNo"].TryParseInt();

            var where = LDMFilter.True <HS_GameTable>();
            var resModel = GameTableBll.Instance.GetPage(where, "id", PageNo, PageSize, false);

            return(Content(JsonStringResult.SuccessPageResult(resModel)));
        }
Exemple #14
0
        /// <summary>
        /// 签名认证
        /// </summary>
        /// <param name="eventArgs"></param>
        public override void OnEntry(MethodExecutionArgs eventArgs)
        {
            Arguments arguments = eventArgs.Arguments;

            if (!UsersBll.Instance.AuthenticationSign(arguments[0].ToString()))
            {
                throw new Exception(JsonStringResult.Error(OperateResCodeEnum.签名验证失败));
            }

            base.OnEntry(eventArgs);
        }
        public string ApplySwitchBanker(string param)
        {
            JObject jobj           = JObject.Parse(param);
            string  userCode       = jobj["UserCode"].TryParseString();
            string  targetUserCode = jobj["TargetUserCode"].TryParseString();
            string  tableCode      = jobj["TableCode"].Value <string>();

            CGameUser user       = GameRecordBll.Instance.GetUser(userCode, tableCode);
            CGameUser targetUser = GameRecordBll.Instance.GetUser(targetUserCode, tableCode);

            SendApplySwitchBankerNotice(user, targetUser);
            return(JsonStringResult.SuccessResult());
        }
        public string IAmCancelReady(string param)
        {
            JObject jobj      = JObject.Parse(param);
            string  userCode  = jobj["UserCode"].TryParseString();
            string  tableCode = jobj["TableCode"].Value <string>();

            var res  = GameBll.Instance.CancelBet(userCode, tableCode);
            var user = GameRecordBll.Instance.GetUser(userCode, tableCode);

            //提示客户端
            //SendBordcast(user.GameCode, "用户:" + user.NickName + "已取消下注!", userCode);
            SendReadyStatusNotice(user.GameCode, "用户:" + user.NickName + "已取消下注!", userCode, user);
            return(JsonStringResult.SuccessResult());
        }
        /// <summary>
        /// 将一名随从从手牌中移到场上
        /// </summary>
        /// <param name="gameCode"></param>
        /// <param name="userCode"></param>
        /// <param name="cardInGameCode"></param>
        /// <param name="location"></param>
        /// <returns></returns>
        public APIResultBase CastServant(string gameCode, string userCode, string cardInGameCode, int location, int target)
        {
            string         res = JsonStringResult.VerifyFail();
            Controler_Base ctl = Validate(gameCode, userCode);

            if (ctl == null)
            {
                return(JsonModelResult.PackageFail(OperateResCodeEnum.查询不到需要的数据));
            }
            if (VictoryValidate(ctl.GameContext))
            {
                return(JsonModelResult.PackageFail(OperateResCodeEnum.游戏已经结束));
            }
            var player = ctl.GameContext.GetActivationUserContext();

            if (player == null || player.UserCode != userCode)
            {
                return(JsonModelResult.PackageFail(OperateResCodeEnum.查询不到需要的数据));
            }
            if (player.HandCards.Any(c => c.CardInGameCode == cardInGameCode) == false)
            {
                return(JsonModelResult.PackageFail(OperateResCodeEnum.查询不到需要的数据));
            }
            if (location == 0 || location == 8)
            {
                return(JsonModelResult.PackageFail(OperateResCodeEnum.查询不到需要的数据));
            }
            //if (ctl.GameContext.DeskCards[location] != null)
            //{
            //    return JsonModelResult.PackageFail(OperateResCodeEnum.位置已被占用);
            //}
            if (player.IsFirst && (location == 0 || location > 7))
            {
                return(JsonModelResult.PackageFail(OperateResCodeEnum.参数错误));
            }
            else if (player.IsFirst == false && (location == 8 || location < 8))
            {
                return(JsonModelResult.PackageFail(OperateResCodeEnum.参数错误));
            }
            Card card = player.HandCards.First(c => c.CardInGameCode == cardInGameCode);

            if (player.Power < card.Cost)
            {
                return(JsonModelResult.PackageFail(OperateResCodeEnum.没有足够的法力值));
            }

            ctl.CastServant((BaseServant)card, location, target);
            return(JsonModelResult.PackageSuccess(_gameCache.GetContext(ctl.GameContext.GameCode).Output()));
        }
Exemple #18
0
        public ActionResult DoLogOut()
        {
            string res = JsonStringResult.VerifyFail();

            try
            {
                CookieHelper.RemoveCookie("User");
                res = JsonStringResult.SuccessResult();
            }
            catch (Exception ex)
            {
                res = JsonStringResult.Error(OperateResCodeEnum.内部错误);
            }
            return(Content(res));
        }
        /// <summary>
        /// 打出一张法术牌
        /// </summary>
        /// <param name="gameCode"></param>
        /// <param name="userCode"></param>
        /// <param name="cardInGameCode"></param>
        /// <param name="target"></param>
        /// <returns></returns>
        public APIResultBase CastSpell(string gameCode, string userCode, string cardInGameCode, int target)
        {
            string         res = JsonStringResult.VerifyFail();
            Controler_Base ctl = Validate(gameCode, userCode);

            if (ctl == null)
            {
                return(JsonModelResult.PackageFail(OperateResCodeEnum.查询不到需要的数据));
            }
            if (VictoryValidate(ctl.GameContext))
            {
                return(JsonModelResult.PackageFail(OperateResCodeEnum.游戏已经结束));
            }
            var player = ctl.GameContext.GetActivationUserContext();

            if (player == null || player.UserCode != userCode)
            {
                return(JsonModelResult.PackageFail(OperateResCodeEnum.查询不到需要的数据));
            }
            if (player.HandCards.Any(c => c.CardInGameCode == cardInGameCode) == false)
            {
                return(JsonModelResult.PackageFail(OperateResCodeEnum.查询不到需要的数据));
            }

            Card card = player.HandCards.First(c => c.CardInGameCode == cardInGameCode);

            if (player.Power < card.Cost)
            {
                return(JsonModelResult.PackageFail(OperateResCodeEnum.没有足够的法力值));
            }
            if (card.CastCardPrecondition == CastCardPrecondition.健康 && target > -1)
            {
                BaseBiology biology = ctl.GameContext.DeskCards[target];
                if (biology.Life != biology.BuffLife)
                {
                    return(JsonModelResult.PackageFail(OperateResCodeEnum.错误的目标));
                }
            }
            if (card.CastCardPrecondition == CastCardPrecondition.装备有武器 && ctl.GameContext.GetHeroByActivation().Equip == null)
            {
                return(JsonModelResult.PackageFail(OperateResCodeEnum.你无法施放这个技能));
            }
            ctl.CastSpell((BaseSpell)card, target);
            return(JsonModelResult.PackageSuccess(_gameCache.GetContext(ctl.GameContext.GameCode).Output()));
        }
        /// <summary>
        /// 英雄发起攻击
        /// </summary>
        /// <param name="gameCode"></param>
        /// <param name="userCode"></param>
        /// <param name="cardInGameCode"></param>
        /// <param name="target"></param>
        /// <returns></returns>
        public APIResultBase HeroAttack(string gameCode, string userCode, int target)
        {
            string         res = JsonStringResult.VerifyFail();
            Controler_Base ctl = Validate(gameCode, userCode);

            if (ctl == null)
            {
                return(JsonModelResult.PackageFail(OperateResCodeEnum.查询不到需要的数据));
            }
            if (VictoryValidate(ctl.GameContext))
            {
                return(JsonModelResult.PackageFail(OperateResCodeEnum.游戏已经结束));
            }
            var player = ctl.GameContext.GetActivationUserContext();

            if (player == null || player.UserCode != userCode)
            {
                return(JsonModelResult.PackageFail(OperateResCodeEnum.查询不到需要的数据));
            }
            if (player.IsFirst && target < 8)
            {
                return(JsonModelResult.PackageFail(OperateResCodeEnum.参数错误));
            }
            else if (player.IsFirst == false && target > 7)
            {
                return(JsonModelResult.PackageFail(OperateResCodeEnum.参数错误));
            }

            BaseHero hero = ctl.GameContext.GetHeroByActivation(player.IsActivation);

            if (hero.RemainAttackTimes < 1)
            {
                return(JsonModelResult.PackageFail(OperateResCodeEnum.查询不到需要的数据));
            }

            List <BaseBiology> taunts = ctl.GameContext.DeskCards.GetDeskCardsByIsFirst(player.IsFirst ? false : true).Where(c => c != null && c.HasTaunt).ToList();

            if (taunts != null && taunts.Count > 0 && taunts.Any(c => c.DeskIndex == target) == false)
            {
                return(JsonModelResult.PackageFail(OperateResCodeEnum.你必须先攻击有嘲讽技能的随从));
            }

            ctl.HeroAttack(hero, target);
            return(JsonModelResult.PackageSuccess(_gameCache.GetContext(ctl.GameContext.GameCode).Output()));
        }
Exemple #21
0
        public async Task <IActionResult> GetAll()
        {
            var gdList = await _geoDataRepository.GetAllGeoDataAsync();

            var allGeoData = (
                from gd in gdList
                select gd.AsBsonDocument into geoData
                where geoData != null
                select BsonSerializer.Deserialize <GeoData>(geoData) into geoD
                select new Dictionary <string, string> {
                { "Id", "\"" + geoD.Id + "\"" }, { "Feature", geoD.Feature.ToJson() }
            }
                ).ToList();

            var geoDataJson = new JsonStringResult(allGeoData);

            return(geoDataJson);
        }
        public string IAmReady(string param)
        {
            JObject jobj      = JObject.Parse(param);
            string  userCode  = jobj["UserCode"].TryParseString();
            string  tableCode = jobj["TableCode"].Value <string>();
            decimal betMoney  = jobj["BetMoney"].TryParseDecimal(2);

            var res  = GameBll.Instance.Bet(userCode, betMoney, tableCode);
            var user = GameRecordBll.Instance.GetUser(userCode, tableCode);

            //提示客户端
            SendReadyStatusNotice(user.GameCode, "用户:" + user.NickName + "已下注" + betMoney + "之巨!", userCode, user);
            if (res.code == (int)OperateResCodeEnum.成功)
            {
                Clients.Group(user.GameCode, new string[0]).allReady("所有人都已下注!");
            }
            return(JsonStringResult.SuccessResult(user));
        }
Exemple #23
0
        public async Task <IActionResult> GetAll()
        {
            var permList = await _penaltyRepository.GetAllPenaltyAsync();

            var allPenalties = (
                from perm in permList
                select perm into penalty
                where penalty != null && (!penalty.deprecationTime.HasValue || penalty.deprecationTime.Value > DateTime.UtcNow)
                select BsonSerializer.Deserialize <Penalty>(penalty.ToBsonDocument()) into pnlt
                select new Dictionary <string, string> {
                { "id", "\"" + pnlt.id + "\"" }, { "Penalty", pnlt.ToJson() }
            }
                ).ToList();

            var permitJson = new JsonStringResult(allPenalties);

            return(permitJson);
        }
Exemple #24
0
        public override void OnException(MethodExecutionArgs args)
        {
            HS_ErrRec ex = new HS_ErrRec();

            ex.Action     = _methodName;
            ex.AddTime    = DateTime.Now;
            ex.Controller = _className;
            ex.ErrorMsg   = args.Exception.Message;
            ex.IP         = StringUtil.GetIP();
            ex.StackTrace = args.Exception.StackTrace;
            ex.Arguments  = "";
            if (args.Arguments != null && args.Arguments.Count > 0)
            {
                ex.Arguments = args.Arguments.ToJsonString();
            }
            ex.DataSource = (int)DataSourceEnum.SignalR;
            ErrRecBll.Instance.AsyncInsert(ex);
            args.ReturnValue  = JsonStringResult.VerifyFail();
            args.FlowBehavior = FlowBehavior.Return;
        }
Exemple #25
0
        /// <summary>
        /// 用户注册
        /// </summary>
        /// <param name="userName"></param>
        /// <param name="pwd"></param>
        /// <param name="mobile"></param>
        /// <param name="email"></param>
        /// <param name="invitationCode"></param>
        /// <param name="nickName"></param>
        /// <param name="headImg"></param>
        /// <returns></returns>
        public string Register(string userName, string pwd, string mobile, string email, string nickName, string headImg = "")
        {
            if (userName.IsNullOrEmpty() || pwd.IsNullOrEmpty() || nickName.IsNullOrEmpty())
            {
                return(JsonStringResult.Error(OperateResCodeEnum.参数错误));
            }
            if (!StringUtil.IsNatural_Number(userName))
            {
                return(JsonStringResult.Error(OperateResCodeEnum.参数错误));
            }
            if (IsRepeat(userName))
            {
                return(JsonStringResult.Error(OperateResCodeEnum.用户名重复));
            }
            //if (!mobile.IsNullOrEmpty() && IsMobileRepeat(mobile))
            //{
            //    return OperateJsonRes.Error(OperateResCodeEnum.手机号重复);
            //}
            //if (!email.IsNullOrEmpty() && IsEmailRepeat(email))
            //{
            //    return OperateJsonRes.Error(OperateResCodeEnum.邮箱重复);
            //}
            string userCode = SignUtil.CreateSign(userName + RandomUtil.CreateRandomStr(10) + DateTime.Now.ToString("yyyyMMddHHmmss"));

            FF_User user = new FF_User();

            user.AddTime    = DateTime.Now;
            user.Email      = email.TryParseString();
            user.Mobile     = mobile.TryParseString();
            user.Password   = SignUtil.CreateSign(pwd);
            user.UserCode   = userCode;
            user.UserName   = userName;
            user.NickName   = nickName;
            user.HeadImg    = headImg.TryParseString();
            user.SecretCode = SignUtil.CreateSign(user.UserName + user.UserCode + RandomUtil.CreateRandomStr(10) + DateTime.Now.Ticks);
            user.OpenID     = "";
            _repository.Insert(user);


            return(JsonStringResult.SuccessResult(user.UserCode));
        }
        /// <summary>
        /// 回合结束
        /// </summary>
        /// <param name="gameCode"></param>
        /// <param name="userCode"></param>
        /// <returns></returns>
        public APIResultBase TurnStart(string gameCode, string userCode)
        {
            string         res = JsonStringResult.VerifyFail();
            Controler_Base ctl = Validate(gameCode, userCode);

            if (ctl == null)
            {
                return(JsonModelResult.PackageFail(OperateResCodeEnum.查询不到需要的数据));
            }
            if (VictoryValidate(ctl.GameContext))
            {
                return(JsonModelResult.PackageFail(OperateResCodeEnum.游戏已经结束));
            }
            var player = ctl.GameContext.GetActivationUserContext();

            if (player == null || player.UserCode != userCode)
            {
                return(JsonModelResult.PackageFail(OperateResCodeEnum.查询不到需要的数据));
            }

            ctl.TurnStart();
            return(JsonModelResult.PackageSuccess(_gameCache.GetContext(ctl.GameContext.GameCode).Output()));
        }
Exemple #27
0
        public async Task <IActionResult> GetAll()
        {
            var prtyList = await _partyRepository.GetAllPartyAsync();

            foreach (var party in prtyList)
            {
                party.CleanChildEntites();
            }

            var allParties = (
                from prty in prtyList
                select prty into party
                where party != null && (!party.deprecationTime.HasValue || party.deprecationTime.Value > DateTime.UtcNow)
                select BsonSerializer.Deserialize <Party>(party.ToBsonDocument()) into prt
                select new Dictionary <string, string> {
                { "id", "\"" + prt.id + "\"" }, { "Party", prt.ToJson() }
            }
                ).ToList();

            var permitJson = new JsonStringResult(allParties);

            return(permitJson);
        }
        /// <summary>
        /// 开场换牌
        /// </summary>
        /// <param name="gameCode"></param>
        /// <param name="userCode"></param>
        /// <param name="lstInitCardIndex"></param>
        /// <returns></returns>
        public APIResultBase SwitchCard(string gameCode, string userCode, List <string> lstInitCardIndex, IShortCodeService shortCodeService)
        {
            string         res = JsonStringResult.VerifyFail();
            Controler_Base ctl = Validate(gameCode, userCode);

            if (ctl == null)
            {
                return(JsonModelResult.PackageFail(OperateResCodeEnum.查询不到需要的数据));
            }
            //if (ctl.TurnIndex != 2)
            //{
            //    return JsonModelResult.PackageFail(OperateResCodeEnum.查询不到需要的数据);
            //}
            if (ctl.GameContext.Players.Any(c => c.UserCode == userCode && c.SwitchDone == false) == false)
            {
                return(JsonModelResult.PackageFail(OperateResCodeEnum.参数错误));
            }
            List <int> initCardIndex = new List <int>();

            foreach (string idx in lstInitCardIndex)
            {
                initCardIndex.Add(idx.TryParseInt());
            }
            if (initCardIndex.Any(c => c < 0 || c > 3) || initCardIndex.Any(c => c >= ctl.GameContext.Players.First(x => x.UserCode == userCode).InitCards.Count()))
            {
                return(JsonModelResult.PackageFail(OperateResCodeEnum.参数错误));
            }
            var idxGroup = initCardIndex.GroupBy(c => c);

            if (idxGroup.Any(c => c.Count() > 1))
            {
                return(JsonModelResult.PackageFail(OperateResCodeEnum.参数错误));
            }
            ctl.SwitchCard(userCode, initCardIndex, shortCodeService);
            return(JsonModelResult.PackageSuccess(_gameCache.GetContext(ctl.GameContext.GameCode).Output().Players.First(c => c.UserCode == userCode)));
        }
Exemple #29
0
        /// <summary>
        /// Adds an extension method to any class derived from ApiController.
        /// </summary>
        /// <param name="controller"></param>
        /// <param name="jsonContent"></param>
        /// <param name="statusCode"></param>
        /// <returns> A JsonStringResult object containig the request, a status code and the content for the request. </returns>
        public static JsonStringResult JsonString(this ApiController controller, string jsonContent, HttpStatusCode statusCode = HttpStatusCode.OK)
        {
            var result = new JsonStringResult(controller.Request, statusCode, jsonContent);

            return(result);
        }
        public override void OnAuthorization(AuthorizationContext filterContext)
        {
            HttpContext.Current.Response.AddHeader("Access-Control-Allow-Origin", "*");
            HttpContext.Current.Response.ContentType = "text/plain";
            ContentResult contentResult = new ContentResult();

            try
            {
                var    Request = filterContext.RequestContext.HttpContext.Request;
                string data    = "";
                if (Request.HttpMethod.ToLower() == "post")
                {
                    using (Stream s = System.Web.HttpContext.Current.Request.InputStream)
                    {
                        byte[] b = new byte[s.Length];
                        s.Read(b, 0, (int)s.Length);
                        data = Encoding.UTF8.GetString(b);
                    };
                }
                else
                {
                    data = filterContext.RequestContext.HttpContext.Request["data"].TryParseString();
                }
                if (data.IsNullOrEmpty())
                {
                    data = filterContext.Controller.TempData["fullData"].TryParseString();
                }


                if (data.IsNullOrEmpty())
                {
                    contentResult.Content = JsonStringResult.Error(OperateResCodeEnum.签名验证失败, "");
                    filterContext.Result  = contentResult;
                    return;
                }
                APIReciveData im = JsonConvert.DeserializeObject <APIReciveData>(data);

                //if (IsValidate && im.token.IsNullOrEmpty())
                //{
                //    //签名验证
                //    if (string.IsNullOrEmpty(im.appid))
                //    {
                //        contentResult.Content = OperateJsonRes.Error(OperateResCodeEnum.签名验证失败, "");
                //        filterContext.Result = contentResult;
                //        return;
                //    }
                //    if (string.IsNullOrEmpty(im.apiname))
                //    {
                //        contentResult.Content = OperateJsonRes.Error(OperateResCodeEnum.签名验证失败, "");
                //        filterContext.Result = contentResult;
                //        return;
                //    }
                //}
                //else
                if (IsValidate)
                {
                    if (!UsersBll.Instance.AuthenticationSign(im))
                    {
                        contentResult.Content = JsonStringResult.Error(OperateResCodeEnum.签名验证失败);
                        filterContext.Result  = contentResult;
                        return;
                    }

                    //var lt = LoginTokenBll.Instance.GetUserInfoByToken(im.token);
                    //if (lt == null)
                    //{
                    //    contentResult.Content = OperateJsonRes.Error(OperateResCodeEnum.登录失败, "");
                    //    filterContext.Result = contentResult;
                    //    return;
                    //}
                    //else if (lt.AddTime < DateTime.Now.AddDays(-1))
                    //{
                    //    LoginTokenBll.Instance.Delete(lt.ID);
                    //    contentResult.Content = OperateJsonRes.Error(OperateResCodeEnum.登录失败, "");
                    //    filterContext.Result = contentResult;
                    //    return;
                    //}
                    //else
                    //{
                    //    filterContext.Controller.TempData["LoginToken"] = lt;
                    //}
                }
                filterContext.Controller.TempData["param"]    = im.param.TryParseString();
                filterContext.Controller.TempData["version"]  = im.version.TryParseString();
                filterContext.Controller.TempData["fullData"] = JsonConvert.SerializeObject(im);
            }
            catch (Exception ex) {
                contentResult.Content = JsonStringResult.Error(OperateResCodeEnum.内部错误, "内部错误");
                filterContext.Result  = contentResult;
            }
            return;
        }