コード例 #1
0
        public IActionResult Ending()
        {
            if (_levelProcessRepository.CheckAuthority(Request.Cookies["token"], 14))
            {
                LevelProcess pro = _levelProcessRepository.GetLevelProcessByToken(Request.Cookies["token"]);
                if (pro.LevelID >= 14)
                {
                    _logger.LogInformation("===LEVEL===> [" + Request.Cookies["token"].Substring(0, 6) + "]@"
                                           + HttpContext.Connection.RemoteIpAddress.MapToIPv4().ToString() + " => [LEVEL#END] SUCCESS.");

                    ViewBag.Token = Request.Cookies["token"];
                    ViewBag.Count = _levelProcessRepository.GetQuantityOfUser();
                    int rank = _rankRepository.GetRankByToken(Request.Cookies["token"]);
                    ViewBag.WinCount = rank == -1 ? _levelProcessRepository.GetNumberOfUserInCurrentLevel(14) : rank;

                    return(View());
                }
                else if (pro.LevelID == 13)
                {
                    LevelProcess process = new LevelProcess();
                    process.Token         = Request.Cookies["token"];
                    process.LevelName     = "Ending.";
                    process.IP            = HttpContext.Connection.RemoteIpAddress.MapToIPv4().ToString();
                    process.UpdateTimeUTC = DateTime.Now.ToUniversalTime();
                    process.LevelID       = 14;
                    _levelProcessRepository.AddOrUpdateLevelProcess(process, "f342f928be56c2ab3e6d63e3eff9d677");

                    _rankRepository.AddPlayer(Request.Cookies["token"], HttpContext.Connection.RemoteIpAddress.MapToIPv4().ToString());

                    ViewBag.Token    = Request.Cookies["token"];
                    ViewBag.Count    = _levelProcessRepository.GetQuantityOfUser();
                    ViewBag.WinCount = _levelProcessRepository.GetNumberOfUserInCurrentLevel(14);

                    _logger.LogInformation("===LEVEL===> [" + Request.Cookies["token"].Substring(0, 6) + "]@"
                                           + HttpContext.Connection.RemoteIpAddress.MapToIPv4().ToString() + " => [LEVEL#END] SUCCESS. \n"
                                           + "\t\t\t\t\t\t\t\t ========> Pos: ["
                                           + _levelProcessRepository.GetNumberOfUserInCurrentLevel(14) + "/"
                                           + _levelProcessRepository.GetQuantityOfUser() + "] <========");

                    return(View());
                }
            }
            return(new NotFoundResult());
        }
コード例 #2
0
        public IActionResult UpdateProcess(string code, string level)
        {
            LevelProcess process = new LevelProcess();

            process.Token         = Request.Cookies["token"];
            process.LevelName     = level;
            process.IP            = HttpContext.Connection.RemoteIpAddress.MapToIPv4().ToString();
            process.UpdateTimeUTC = DateTime.Now.ToUniversalTime();
            if (!string.IsNullOrWhiteSpace(level) && Assets.LevelDic.ContainsKey(level))
            {
                process.LevelID = Assets.LevelDic[level];
            }
            else
            {
                process.LevelID = -1;
            }

            _logger.LogInformation("====TRY====> " + process.IP + " => [" + process.LevelID + "]" + process.LevelName);

            Assets.Status Result = Assets.Status.Fail;

            switch (level)
            {
            case "Anime":
                if (_animeProcessRepository.IsSatisfyRequiredCount(process.Token))
                {
                    Result = _levelProcessRepository.AddOrUpdateLevelProcess(process, "d77eb394992936c977ce3f9a112f4b48");
                }
                break;

            case "Code":
                if (_codeKeyRepository.CheckCodeKey(process.Token, code))
                {
                    Result = _levelProcessRepository.AddOrUpdateLevelProcess(process, "c13367945d5d4c91047b3b50234aa7ab");
                }
                break;

            case "Maze":
                if (_mazeProcessRepository.IsArriveDestination(process.Token))
                {
                    Result = _levelProcessRepository.AddOrUpdateLevelProcess(process, "d1f47e0b0089103812481452acb680f5");
                }
                break;

            case "Billionaire":
                if (_liveLikeRepository.CheckTotalCount())
                {
                    Result = _levelProcessRepository.AddOrUpdateLevelProcess(process, "0b9cb93dff91ce2d9e504a85e6fbac54");
                }
                break;

            default:
                Result = _levelProcessRepository.AddOrUpdateLevelProcess(process, code);
                break;
            }

            switch (Result)
            {
            case Assets.Status.Success:
                _logger.LogInformation("==SUCCESS==> [" + process.Token.Substring(0, 6) + "]@"
                                       + process.IP + " => [" + process.LevelID + "]" + process.LevelName);
                return(Assets.LevelMsg.ContainsKey(process.LevelID) ?
                       new JsonResult(new
                {
                    status = "Success",
                    process.Token,
                    msg = Assets.LevelMsg[process.LevelID],
                    t = _levelProcessRepository.GetQuantityOfUser(),
                    c = _levelProcessRepository.GetNumberOfUserInCurrentLevel(process.LevelID)
                })
                        :
                       new JsonResult(new
                {
                    status = "Success",
                    process.Token,
                    t = _levelProcessRepository.GetQuantityOfUser(),
                    c = _levelProcessRepository.GetNumberOfUserInCurrentLevel(process.LevelID)
                }));

            case Assets.Status.Fail:
                return(new JsonResult(new { status = "Fail", process.Token }));

            case Assets.Status.NotFound:
                return(new JsonResult(new { status = "NotFound", process.Token }));

            default:
                return(new JsonResult(new { status = "Fail", process.Token }));
            }
        }