示例#1
0
 public IActionResult Billionaire()
 {
     if (_levelProcessRepository.CheckAuthority(Request.Cookies["token"], 8))
     {
         _logger.LogInformation("===LEVEL===> [" + Request.Cookies["token"].Substring(0, 6) + "]@"
                                + HttpContext.Connection.RemoteIpAddress.MapToIPv4().ToString() + " => [LEVEL#Billionaire] SUCCESS.");
         ViewData["Count"] = _levelProcessRepository.GetQuantityOfUser();
         return(View());
     }
     return(new NotFoundResult());
 }
 public IActionResult LevelData()
 {
     ViewBag.Counts = new List <int>();
     ViewBag.Levels = new Dictionary <int, string>
     {
         { 0, "Start" },       // Done
         { 1, "A Letter" },    // Done
         { 2, "Memory" },      // Done
         { 3, "Anime" },       // Done
         { 4, "Math" },        // Done
         { 5, "Fans" },        // Done
         { 6, "Excel" },       // Done
         { 7, "Code" },        // Done
         { 8, "Billionaire" }, // Done
         { 9, "Trees" },       // Done
         { 10, "Emoji" },      // Done
         { 11, "Maze" },       // Done
         { 12, "NO.12" },      // Done
         { 13, "Ending?" },    // Done
         { 14, "Ending." }     // Done
     };
     for (int i = 0; i < 15; i++)
     {
         ViewBag.Counts.Add(_levelProcessRepository.GetNumberOfUserInCurrentLevel(i));
     }
     ViewBag.TotalCount = _levelProcessRepository.GetQuantityOfUser();
     return(View());
 }
        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 }));
            }
        }