public RequestResponse GetRewardDetailResponseByID(int rewardId) { var reward = _context.Rewards.Find(rewardId); if (reward == null) { return(BadResponse("Invalid Reward ID.")); } var userMembership = reward.Group.GroupMembers.FirstOrDefault(gm => gm.UserId == _userId.ToString()); if (userMembership == null || !userMembership.IsAccepted) { return(BadResponse("Invalid permissions.")); } var rewardDetail = new RewardDetail { RewardId = reward.RewardId, RewardName = reward.RewardName, Cost = reward.Cost, NumberAvailable = reward.NumberAvailable, GroupId = reward.GroupId }; return(OkModelResponse("Reward found successfully.", rewardDetail)); }
public void Init(RewardDetail _rewardDetail, System.Action _onClose = null) { rewardDetail = _rewardDetail; imgReward.sprite = rewardDetail.itemInfo.icon; textRewardQuantity.text = "+" + MyConstant.GetMoneyString(_rewardDetail.quantity, 999999); textSubmitButton.text = MyLocalize.GetString("Global/Claim"); textTitle.text = MyLocalize.GetString("Global/Congratulations"); onClose = _onClose; CoreGameManager.instance.RegisterNewCallbackPressBackKey(Close); Show(); }
IEnumerator DoActionCreatePopupReward(RewardDetail _rewardDetail) { bool _isFinished = false; PopupRewardController _tmpPopup = LeanPool.Spawn(popupRewardPrefab.transform, Vector3.zero, Quaternion.identity, pool.transform).GetComponent <PopupRewardController>(); _tmpPopup.Init(_rewardDetail, () => { RemovePopupActive(_tmpPopup); _isFinished = true; }); MyAudioManager.instance.PlaySfx(PopupManager.Instance.myInfoAudio.sfx_PopupReward); AddPopupActive(_tmpPopup); yield return(new WaitUntil(() => _isFinished)); }
// public Coroutine SetCheckAfterGetFirstData(){ // return StartCoroutine(DoActionCheckAfterGetFirstData()); // } // IEnumerator DoActionCheckAfterGetFirstData(){ // IAPManager.instance.CheckWhenLogin(); // yield return Yielders.Get(1f); // ShowAnnouncement(); // } /*/IEnumerator DoActionGetFirstData(){ #if TEST * Debug.Log(">>> Get Sub Server Detail!"); #endif * bool _isFinished = false; * bool _canTestSubSv = false; * * OneHitAPI.GetSubServerDetailAndData((_messageReceiving, _error) => * { * if (_messageReceiving != null) * { * long _featureVersion = _messageReceiving.readLong(); // nhỏ hơn giá trị này --> thông báo update #if TEST * Debug.Log(">>> Version: " + _featureVersion + " - " + MyConstant.featureVersionCore); #endif * if (MyConstant.featureVersionCore < _featureVersion) * { * DataManager.instance.haveNewVersion = true; * } * DataManager.instance.announcement = _messageReceiving.readString(); * * // ------------- GoldDaily ------------- // * sbyte _numberGoldDaily = _messageReceiving.readByte(); * List<RewardDetail> _tmpListRewards = new List<RewardDetail>(); * for (int i = 0; i < _numberGoldDaily; i++) * { * long _goldDaily = _messageReceiving.readLong(); * RewardDetail _reward = new RewardDetail(IItemInfo.ItemType.Gold, _goldDaily); * _tmpListRewards.Add(_reward); * } * DataManager.instance.dailyRewardData.listRewards = _tmpListRewards; * // ------------------------------------- // * * // ------------- Leaderboard ------------- // * long _currentMilisecondTimeUpdateTop = _messageReceiving.readLong(); * sbyte _numberTop = _messageReceiving.readByte(); * List<UserData> _listTopGold = new List<UserData>(); * for(int i = 0; i < _numberTop; i ++){ * UserData _userData = new UserData(); * _userData.InitData(); * _userData.GetMoreUserData(_messageReceiving); * _listTopGold.Add(_userData); * } * System.DateTime _start = new System.DateTime(1970, 1, 1, 0, 0, 0, System.DateTimeKind.Utc); * DataManager.instance.leaderboardData.lastTimeUpdateTop = _start.AddMilliseconds(_currentMilisecondTimeUpdateTop).ToLocalTime(); * DataManager.instance.leaderboardData.topGold = _listTopGold; * DataManager.instance.leaderboardData.SortListTopGoldAgain(); * // --------------------------------------- // * * // ------------- List Sub Server ------------- // * short _numberSubServer = _messageReceiving.readShort(); * List<SubServerDetail> _tmpListSubSv = new List<SubServerDetail>(); * if (_numberSubServer > 0){ * for (int i = 0; i < _numberSubServer; i++){ * SubServerDetail _tmpSubSvDetail = new SubServerDetail(_messageReceiving); * _tmpListSubSv.Add(_tmpSubSvDetail); * } * } * DataManager.instance.subServerData.LoadDataFromSv(_tmpListSubSv); * // --------------------------------------- // * * // ------------- RoomDetail ------------- // * List<TemporaryServerDetail> _tmpListTemporaryServerDetail = new List<TemporaryServerDetail>(); * short _numberRoomDetail = _messageReceiving.readShort(); * for(int i = 0; i < _numberRoomDetail; i ++){ * TemporaryServerDetail _tmpServerDetail = new TemporaryServerDetail(_messageReceiving); * _tmpListTemporaryServerDetail.Add(_tmpServerDetail); * } * DataManager.instance.temporaryServerData.listDetail = _tmpListTemporaryServerDetail; * * for(int i = 0; i < DataManager.instance.miniGameData.listMiniGameDetail.Count; i++){ * MiniGameDetail _gameDetail = DataManager.instance.miniGameData.listMiniGameDetail[i]; * if(!_gameDetail.myInfo.isSubGame){ * // _gameDetail.SetUpRoomDataAgain(); * } * } * // --------------------------------------- // * _canTestSubSv = true; * } * else * { #if TEST * Debug.LogError(">>> GetSubServerDetailAndData Error Code: " + _error); #endif * * // for(int i = 0; i < DataManager.instance.miniGameData.listMiniGameDetail.Count; i++){ * // MiniGameDetail _gameDetail = DataManager.instance.miniGameData.listMiniGameDetail[i]; * // if(!_gameDetail.myInfo.isSubGame * // && _gameDetail.roomData.listRoomServerDetail.Count == 0){ * // _gameDetail.SetUpRoomDataAgain(); * // } * // } * } * _isFinished = true; * }); * yield return new WaitUntil(() => _isFinished); * * if(_canTestSubSv){ * NetworkGlobal.instance.TestSub(DataManager.instance.subServerData.listSubServerDetail, ()=>{ * DataManager.instance.subServerData.SortListSubServerAgain(); * if(HomeManager.instance != null){ * if (!string.IsNullOrEmpty(DataManager.instance.announcement)){ * List<string> _listAnnouncement = new List<string>(); * _listAnnouncement.Add(DataManager.instance.announcement); * HomeManager.instance.announcement.InitData(_listAnnouncement); * HomeManager.instance.announcement.Show(); * } * if (DataManager.instance.userData.userId != 0){ * HomeManager.instance.LoadDataGoldGemFromServer(); * } * } * IAPManager.instance.CheckWhenLogin(); * }); * }else{ * DataManager.instance.subServerData.SortListSubServerAgain(); * if(CoreGameManager.instance.currentSceneManager != null * && CoreGameManager.instance.currentSceneManager.mySceneType == IMySceneManager.Type.Home){ * if (!string.IsNullOrEmpty(DataManager.instance.announcement)){ * List<string> _listAnnouncement = new List<string>(); * _listAnnouncement.Add(DataManager.instance.announcement); * announcement.InitData(_listAnnouncement); * announcement.Show(); * } * } * } * }*/ void InitGoldDailyData(MessageReceiving _mess) { sbyte _numberGoldDaily = _mess.readByte(); List <RewardDetail> _tmpListRewards = new List <RewardDetail>(); for (int i = 0; i < _numberGoldDaily; i++) { long _goldDaily = _mess.readLong(); RewardDetail _reward = new RewardDetail(IItemInfo.ItemType.Gold, _goldDaily); _tmpListRewards.Add(_reward); } DataManager.instance.dailyRewardData.listRewards = _tmpListRewards; }
public Coroutine CreatePopupReward(RewardDetail _rewardDetail) { if (myCanvas.worldCamera == null && CoreGameManager.instance.currentSceneManager != null) { myCanvas.worldCamera = CoreGameManager.instance.currentSceneManager.cameraForConsumableScreen.mainCamera; } else { myCanvas.worldCamera = Camera.main; } myCanvasGroup.alpha = 1f; myCanvasGroup.blocksRaycasts = true; return(StartCoroutine(DoActionCreatePopupReward(_rewardDetail))); }
public void InitData(int _indexDay, RewardDetail _rewardDetail, System.Action _onRecieveReward) { currentState = State.CanNotClaim; if (_indexDay < DataManager.instance.dailyRewardData.listRewards.Count) { txtDay.text = MyLocalize.GetString("Global/Day") + " " + (_indexDay + 1); } else { txtDay.text = MyLocalize.GetString("Global/Day") + " " + (DataManager.instance.dailyRewardData.listRewards.Count) + "+"; } rewardDetail = _rewardDetail; txtQuantity.text = "+" + MyConstant.GetMoneyString(rewardDetail.quantity, 9999); imgReward.sprite = _rewardDetail.itemInfo.icon; onRecieveReward = _onRecieveReward; timeCanPress = System.DateTime.Now; }
public InstallAppDetail(MessageReceiving _mess) { int _id = _mess.readInt(); packageName = _mess.readString(); textkeySearch = _mess.readString(); int count_install = _mess.readInt(); int sum_install = _mess.readInt(); int money_pay_to_user = _mess.readInt(); isRating = _mess.readBoolean(); textTitle = _mess.readString(); textDescription = _mess.readString(); linkIcon = _mess.readString(); timeKeep = _mess.readLong(); linkReport = _mess.readString(); currentState = State.None; timeToGetReward = DateTime.MinValue; reward = new RewardDetail(IItemInfo.ItemType.Gold, money_pay_to_user); messRecieveReward = null; }
public void SendMessageToServer(SubServerDetail _serverDetail, System.Action <List <RewardDetail> > _onSucceed, System.Action _onFinished, bool _sendInSilent = false) { if (isDone) { return; } #if UNITY_ANDROID OneHitAPI.IAP_Android(_serverDetail, screenPurchase, productId, tokenPurchase, (_messageReceiving, _error) => { if (_messageReceiving != null) { sbyte _caseCheck = _messageReceiving.readByte(); if (_caseCheck == 1 || _caseCheck < -100) { if (_caseCheck == 1) { long _goldAdd = _messageReceiving.readLong(); DataManager.instance.userData.gold = _messageReceiving.readLong(); if (_onSucceed != null) { IAPProductDetail _productDetail = DataManager.instance.IAPProductData.GetProductDetail(productId); if (_productDetail == null) { #if TEST Debug.LogError(">>> productDetail is null in data: " + productId); #endif } List <RewardDetail> _tmplistRewardDetail = new List <RewardDetail>(); RewardDetail _rewardDetail = new RewardDetail(IItemInfo.ItemType.Gold, _goldAdd); _tmplistRewardDetail.Add(_rewardDetail); _onSucceed(_tmplistRewardDetail); } } else { #if TEST Debug.LogError(">>> IAP_Android Trường hợp check case = " + _caseCheck); #endif } isDone = true; } else { // #if TEST // Debug.LogError(">>> IAP_Android can not Purchase: " + _caseCheck); // #endif // private static final byte STATUS_PURCHASE_OK=1; // private static final byte STATUS_REFUND=-122; // private static final byte STATUS_ERROR_PURCHASE_PROCESSED_DaXuLyRoi=-125; // private static final byte STATUS_DATABASE_ERROR_1=-21; // private static final byte STATUS_VERIFY_PURCHASE_GOOGLE_API_ERROR=-22; // private static final byte STATUS_ERROR_GOLD_MAIN=-23; // private static final byte STATUS_VALIDATE_ERROR=-24; // private static final byte STATUS_PLAYER_ERROR=-25; if (_caseCheck == -22) { string _tmp = _messageReceiving.readString(); #if TEST Debug.LogError(">>> Error IAP_Android: STATUS_VERIFY_PURCHASE_GOOGLE_API_ERROR - " + _tmp); #endif } if (!_sendInSilent) { PopupManager.Instance.CreatePopupMessage(MyLocalize.GetString(MyLocalize.kError) , MyLocalize.GetString("Error/IAP_CanNotPurchase") , _caseCheck.ToString() , MyLocalize.GetString(MyLocalize.kOk)); } else { #if TEST Debug.LogError(">>> Error IAP_Android: " + MyLocalize.GetString("Error/IAP_CanNotPurchase") + " - " + _caseCheck); #endif } } } else { // #if TEST // Debug.LogError(">>> IAP_Android Error Code: " + _error); // #endif /* 1/ Thông báo : lỗi network --> show nut refresh * 2/ Thông báo : hông được clear dữ liệu + nếu tắt ứng dụng ngay lúc này thì : lần kết nối sau sẽ tự động cộng tiền khi có kết nối với server */ if (!_sendInSilent) { PopupManager.Instance.CreatePopupDialog(MyLocalize.GetString(MyLocalize.kError) , MyLocalize.GetString("Error/IAP_PurchaseUnsuccessful") , _error.ToString() , MyLocalize.GetString(MyLocalize.kTryAgain) , MyLocalize.GetString(MyLocalize.kOk) , () => { SendMessageToServer(_serverDetail, _onSucceed, _onFinished); } , () => { // IAP_Warning_CloseConnectToSv PopupManager.Instance.CreatePopupMessage(MyLocalize.GetString(MyLocalize.kWarning) , MyLocalize.GetString("System/IAP_Warning_CloseConnectToSv") , string.Empty , MyLocalize.GetString(MyLocalize.kOk)); }); } else { #if TEST Debug.LogError(">>> Error IAP_Android: " + MyLocalize.GetString("Error/IAP_PurchaseUnsuccessful") + " - " + _error); #endif } } if (_onFinished != null) { _onFinished(); } }); #elif UNITY_IOS //TODO: Chưa làm cho IOS Debug.Log("Chưa làm"); #endif }
public void RecieveReward(System.Action _onRecieveRewardSuccessfully, System.Action _onClearData) { LoadingCanvasController.instance.Show(1f); OneHitAPI.Forward_Bonus_AndroidInstall_Commit(packageName, (_messageReceiving, _error) => { LoadingCanvasController.instance.Hide(); if (_messageReceiving != null) { sbyte _caseCheck = _messageReceiving.readByte(); // (nếu 1 thì đọc tiếp) bool _tmpFlag = false; if (_caseCheck == 1) { int _goldAdd = _messageReceiving.readInt(); long _goldResult = _messageReceiving.readLong(); DataManager.instance.userData.gold = _goldResult; RewardDetail _reward = new RewardDetail(IItemInfo.ItemType.Gold, _goldAdd); PopupManager.Instance.CreatePopupReward(_reward); if (_onRecieveRewardSuccessfully != null) { _onRecieveRewardSuccessfully(); } _tmpFlag = true; } else { switch (_caseCheck) { case -1: // nhiệm vụ không còn tồn tại (clear data) PopupManager.Instance.CreatePopupMessage(MyLocalize.GetString(MyLocalize.kWarning) , MyLocalize.GetString("Error/InstallApp_Error_1") , _caseCheck.ToString() , MyLocalize.GetString(MyLocalize.kOk)); _tmpFlag = true; break; case -2: // lỗi không load được database tracking cài đặt PopupManager.Instance.CreatePopupMessage(MyLocalize.GetString(MyLocalize.kWarning) , MyLocalize.GetString("Error/InstallApp_Error_2") , _caseCheck.ToString() , MyLocalize.GetString(MyLocalize.kOk)); break; case -3: // đã nhận thưởng rồi (clear data) PopupManager.Instance.CreatePopupMessage(MyLocalize.GetString(MyLocalize.kWarning) , MyLocalize.GetString("Error/InstallApp_Error_3") , _caseCheck.ToString() , MyLocalize.GetString(MyLocalize.kOk)); _tmpFlag = true; break; case -4: // nhiệm vụ hết hạn (clear data) PopupManager.Instance.CreatePopupMessage(MyLocalize.GetString(MyLocalize.kWarning) , MyLocalize.GetString("Error/InstallApp_Error_4") , _caseCheck.ToString() , MyLocalize.GetString(MyLocalize.kOk)); _tmpFlag = true; break; case -5: // không lấy được thông tin người chơi (user này chưa đăng ký) PopupManager.Instance.CreatePopupMessage(MyLocalize.GetString(MyLocalize.kWarning) , MyLocalize.GetString("Error/InstallApp_Error_5") , _caseCheck.ToString() , MyLocalize.GetString(MyLocalize.kOk)); break; default: #if TEST Debug.LogError("Forward_Bonus_AndroidInstall_Commit other error from sever: " + _caseCheck); #endif break; } } if (_tmpFlag) { currentState = State.Done; if (myOriginalDetail != null) { myOriginalDetail.currentState = State.Done; } if (_onClearData != null) { _onClearData(); } } } else { #if TEST Debug.LogError("RecieveReward InstallApp Reward error: " + _error); #endif } }); }
public void RecieveReward(MessageReceiving _messageReceiving, System.Action <sbyte> _onRecieveCaseCheck = null) { string _debug = string.Empty; sbyte _caseCheck = _messageReceiving.readByte(); _debug += _caseCheck + "|"; switch (_caseCheck) { case -1: // tài khoản không tồn tại #if TEST Debug.LogError(">>> Tài khoản không tồn tại"); #endif break; case -2: // chưa đến lúc nhận thưởng #if TEST Debug.LogError(">>> Chưa đến lúc nhận thưởng. Cập nhật lại!"); #endif currentDayLogin = _messageReceiving.readByte(); lastTimeRecieved = MyConstant.currentTimeMilliseconds; timeCountDownToReceiveReward = _messageReceiving.readLong(); nextTimeRecieved = lastTimeRecieved + timeCountDownToReceiveReward; timeToGetReward = DateTime.Now.AddMilliseconds(timeCountDownToReceiveReward); timeCountDownToReset = _messageReceiving.readLong(); timeToReset = DateTime.Now.AddMilliseconds(timeCountDownToReset); _debug += timeCountDownToReceiveReward + "|" + timeCountDownToReset + "|" + currentDayLogin; break; case 1: // nhận thưởng thành công #if TEST Debug.Log(">>> Nhận thưởng thành công"); #endif lastDayLogin = currentDayLogin; currentDayLogin = _messageReceiving.readByte(); long _goldAdd = _messageReceiving.readLong(); long _goldResult = _messageReceiving.readLong(); DataManager.instance.userData.gold = _goldResult; lastTimeRecieved = MyConstant.currentTimeMilliseconds; timeCountDownToReceiveReward = _messageReceiving.readLong(); nextTimeRecieved = lastTimeRecieved + timeCountDownToReceiveReward; timeToGetReward = System.DateTime.Now.AddMilliseconds(timeCountDownToReceiveReward); timeCountDownToReset = _messageReceiving.readLong(); timeToReset = DateTime.Now.AddMilliseconds(timeCountDownToReset); _debug += timeCountDownToReceiveReward + "|" + timeCountDownToReset + "|" + currentDayLogin + "|" + _goldAdd + "|" + _goldResult; RewardDetail _rewardDetail = new RewardDetail(IItemInfo.ItemType.Gold, _goldAdd); PopupManager.Instance.CreatePopupReward(_rewardDetail); break; default: #if TEST Debug.LogError("Không có casecheck này: " + _caseCheck); #endif break; } if (_onRecieveCaseCheck != null) { _onRecieveCaseCheck(_caseCheck); } #if TEST Debug.Log(">>> GetGoldDaily Response : " + _debug); #endif }
public void RecieveReward(MessageReceiving _messageReceiving, System.Action <sbyte> _onRecieveCaseCheck = null) { // byte caseValue // Xét trường hợp : caseValue // -1 : tài khoảng không tồn tại // -2 : chưa đến lúc trợ cấp ⟶ đọc tiếp kiểu long : thời gian countDown nhận trợ cấp // -7 : số gold đang lớn hơn gold add ⟶ đọc tiếp goldAdd kiểu long // 1 hoặc 2 : trợ cấp thành công ⟶ đọc tiếp dữ liệu sau // long gold_add : số gold được cộng // long gold_result : số gold sau khi cộng // long timeCountDown : thời gian reset trợ cấp // byte countSubsidy : số trợ cấp đã nhận trong ngày string _debug = string.Empty; sbyte _caseCheck = _messageReceiving.readByte(); long _timeCountDownToReceiveReward = 0; long _goldAdd = 0; long _GOLD = 0; _debug += _caseCheck + "|"; switch (_caseCheck) { case -1: // tài khoản không tồn tại #if TEST Debug.LogError(">>> Tài khoản không tồn tại"); #endif break; case -2: // chưa đến lúc nhận thưởng #if TEST Debug.LogError(">>> Chưa đến lúc nhận thưởng. Cập nhật lại!"); #endif _timeCountDownToReceiveReward = _messageReceiving.readLong(); Debug.LogError(">>>> " + _timeCountDownToReceiveReward); if (_timeCountDownToReceiveReward > 86400000) { #if TEST Debug.LogError(">>> Bug tràn số : " + _timeCountDownToReceiveReward); #endif _timeCountDownToReceiveReward = 86400000; } timeToGetReward = DateTime.Now.AddMilliseconds(_timeCountDownToReceiveReward); _debug += _timeCountDownToReceiveReward + "|" + timeToGetReward; break; case -7: // số gold đang lớn hơn gold add ⟶ đọc tiếp goldAdd kiểu long _goldAdd = _messageReceiving.readLong(); // số gold được cộng _GOLD = _messageReceiving.readLong(); _debug += _goldAdd + "|" + _GOLD; PopupManager.Instance.CreatePopupMessage( MyLocalize.GetString(MyLocalize.kWarning) , string.Format(MyLocalize.GetString("System/Message_Subsidy_UnqualifiedClaim"), _goldAdd) , "-7" , MyLocalize.GetString(MyLocalize.kOk) , null); break; case 1: // nhận thưởng thành công case 2: #if TEST Debug.Log(">>> Nhận thưởng thành công"); #endif countGetSubsidy = _messageReceiving.readByte(); // số trợ cấp đã nhận trong ngày _timeCountDownToReceiveReward = _messageReceiving.readLong(); // thời gian reset trợ cấp if (_timeCountDownToReceiveReward > 86400000) { #if TEST Debug.LogError(">>> Bug tràn số : " + _timeCountDownToReceiveReward); #endif _timeCountDownToReceiveReward = 86400000; } timeToGetReward = System.DateTime.Now.AddMilliseconds(_timeCountDownToReceiveReward); _goldAdd = _messageReceiving.readLong(); // số gold được cộng _GOLD = _messageReceiving.readLong(); // số gold sau khi cộng DataManager.instance.userData.gold = _GOLD; _debug += _timeCountDownToReceiveReward + "|" + timeToGetReward + "|" + countGetSubsidy + "|" + _goldAdd + "|" + _GOLD; RewardDetail _rewardDetail = new RewardDetail(IItemInfo.ItemType.Gold, _goldAdd); PopupManager.Instance.CreatePopupReward(_rewardDetail); break; default: #if TEST Debug.LogError("Không có casecheck này: " + _caseCheck); #endif break; } if (_onRecieveCaseCheck != null) { _onRecieveCaseCheck(_caseCheck); } #if TEST Debug.Log(">>> GetSubsidy Response : " + _debug); #endif }