예제 #1
0
        public static async Task <dynamic> Run(
            [HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req,
            ILogger log)
        {
            try{
                string body = await req.ReadAsStringAsync();

                var context = JsonConvert.DeserializeObject <FunctionExecutionContext <dynamic> >(body);
                var request = JsonConvert.DeserializeObject <FunctionExecutionContext <LoginApiRequest> >(body).FunctionArgument;

                // 初ログイン時処理
                var userData = await DataProcessor.GetUserDataAsync(context);

                if (userData.lastLoginDateTime == default(DateTime))
                {
                    await DataProcessor.UpdateUserDataAsync(context, new Dictionary <UserDataKey, object>(){
                        { UserDataKey.rank, 1 },
                    });
                }

                // ログイン日時の更新
                var now = DateTimeUtil.Now();
                await DataProcessor.UpdateUserDataAsync(context, new Dictionary <UserDataKey, object>(){ { UserDataKey.lastLoginDateTime, now } });

                // スタミナの更新
                await StaminaUtil.SetStamina(context);

                var response = new LoginApiResponse()
                {
                };
                return(PlayFabSimpleJson.SerializeObject(response));
            }catch (PMApiException e) {
                // レスポンスの作成
                var response = new PMApiResponseBase()
                {
                    errorCode = e.errorCode,
                    message   = e.message
                };
                return(PlayFabSimpleJson.SerializeObject(response));
            }
        }
예제 #2
0
        public void RunUpdater()
        {
            _instance?.Invoke((MethodInvoker) delegate
            {
                _instance.btnPlay.Enabled = false;
            });

            LoginApiResponse resp = GetLoginAPIResponse(_instance?.txtUser.Text, _instance?.txtPass.Text);

            if (resp == null)
            {
                Log.Info("API response was null.");
                return;
            }

            Log.Info("Response Status info:");
            Log.Info("Status: " + resp.status);
            Log.Info("Reason: " + resp.reason);
            Log.Info("Additi: " + resp.additional);

            switch (resp.status)
            {
            case "true":
            {
                _instance?.Invoke((MethodInvoker) delegate
                    {
                        _instance.lblInfo.ForeColor = Color.Green;
                        _instance.lblInfo.Text      = resp.reason;
                    });
                UpdateFilesAndPlay();
                break;
            }

            case "false":
            {
                _instance?.Invoke((MethodInvoker) delegate
                    {
                        _instance.lblInfo.ForeColor = Color.Red;
                        _instance.lblInfo.Text      = resp.reason;
                        _instance.btnPlay.Enabled   = true;
                    });
                break;
            }

            case "critical":
            {
                _instance?.Invoke((MethodInvoker) delegate
                    {
                        _instance.lblInfo.ForeColor = Color.Red;
                        _instance.lblInfo.Text      = resp.additional;
                        _instance.btnPlay.Enabled   = true;
                    });
                break;
            }

            case "info":
            {
                _instance?.Invoke((MethodInvoker) delegate
                    {
                        _instance.lblInfo.ForeColor = Color.Orange;
                        _instance.lblInfo.Text      = resp.reason;
                        _instance.btnPlay.Enabled   = true;
                    });
                break;
            }

            default:
            {
                _instance.BeginInvoke((MethodInvoker) delegate
                    {
                        MessageBox.Show(_instance, "There was an error logging you in!", "Oops!");
                        _instance.lblInfo.ForeColor = Color.Red;
                        _instance.lblInfo.Text      = "Error";
                    });
                break;
            }
            }

            _instance?.Invoke((MethodInvoker) delegate
            {
                _instance.lblInfo.Visible = true;
                _instance.ActiveControl   = null;
            });
        }