protected override ApiResultMessage HandleRequest(object args) { var data = ((JObject)args).ToObject <ApiAuthenticationData>(); Member user = null; if (!data.isFacebook) { //Standard login procedure TitanAuthService.Login(data.username, data.password, data.secondaryPassword, false); user = new Member(data.username); } else { //Facebook login procedure FacebookMember fbUser = new FacebookMember(data.username); TitanAuthService.LoginOrRegister(fbUser, false); user = TableHelper.SelectRows <Member>(TableHelper.MakeDictionary("FacebookOAuthId", fbUser.FacebookId))[0]; } var token = ApiAccessToken.GetOrCreate(user.Id); return(new ApiResultMessage { success = true, message = String.Empty, data = new JObject(new JProperty("token", token.Token)) }); }
protected override ApiResultMessage HandleRequest(object args) { string token = ((JObject)args)["token"].ToString(); int featureId = (int)((JObject)args)["feature"]; int userId = ApiAccessToken.ValidateAndGetUserId(token); var purchaseOption = PurchaseOption.Get((PurchaseOption.Features)featureId); List <int> availableBalances = new List <int>(); if (purchaseOption.PurchaseBalanceEnabled) { availableBalances.Add((int)PurchaseBalances.Purchase); } if (purchaseOption.CashBalanceEnabled) { availableBalances.Add((int)PurchaseBalances.Cash); } return(new ApiResultMessage { success = true, message = String.Empty, data = availableBalances }); }
protected override ApiResultMessage HandleRequest(object args) { var token = ((JObject)args)["token"].ToString(); var membershipPackId = Convert.ToInt32(((JObject)args)["membershipPackId"]); var htmlResponse = false; var balance = (PurchaseBalances)Convert.ToInt32(((JObject)args)["balance"]); var userId = ApiAccessToken.ValidateAndGetUserId(token); var pack = new MembershipPack(membershipPackId); var User = new Member(userId); var ResultMessage = U3501.UPGRADEOK; if (balance == PurchaseBalances.PaymentProcessor) { var PackPrice = pack.GetPrice(User); var bg = new UpgradeMembershipButtonGenerator(User, PackPrice, pack); ResultMessage = GenerateHTMLButtons.GetPaymentButtons(bg); htmlResponse = true; } else { Membership.BuyPack(User, pack, balance); } return(new ApiResultMessage { success = true, message = ResultMessage, messageIsHtml = htmlResponse, data = null }); }
protected override ApiResultMessage HandleRequest(object args) { string token = ((JObject)args)["token"].ToString(); int userId = ApiAccessToken.ValidateAndGetUserId(token); return(new ApiResultMessage { success = true, message = String.Empty, data = new ApiMember(new Member(userId)) }); }
public static int ValidateAndGetUserId(string token) { var tokens = TableHelper.GetListFromRawQuery <ApiAccessToken>(String.Format( "SELECT * FROM ApiAccessTokens WHERE Token = '{0}' AND ExpiresDate >= '{1}'", token.Trim(), AppSettings.ServerTime.ToDBString())); if (tokens.Count == 0) { throw new MsgException("Invalid Access Token."); } ApiAccessToken targetToken = tokens[0]; return(targetToken.UserId); }
protected override ApiResultMessage HandleRequest(object args) { string token = ((JObject)args)["token"].ToString(); int userId = ApiAccessToken.ValidateAndGetUserId(token); Member user = new Member(userId); List <Member> referrals = user.GetDirectReferralsList(); List <ApiReferral> apiReferrals = referrals.Select(elem => new ApiReferral(elem)).ToList(); return(new ApiResultMessage { success = true, message = (apiReferrals.Count > 0)? String.Empty : L1.NODIRECTREFERRALS, data = apiReferrals }); }
protected override ApiResultMessage HandleRequest(object args) { string token = ((JObject)args)["token"].ToString(); bool active = (bool)((JObject)args)["active"]; int userId = ApiAccessToken.ValidateAndGetUserId(token); List <Jackpot> jackpots = JackpotManager.GetJackpots(active); List <ApiJackpot> apiJackpots = jackpots.Select(elem => new ApiJackpot(elem, userId)).ToList(); return(new ApiResultMessage { success = true, message = String.Empty, data = apiJackpots }); }
public async Task <IActionResult> ExternalApi() { var auth0Client = _clientFactory.CreateClient(); auth0Client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); var json = JsonSerializer.Serialize(new { client_id = "eKbGojuUIR7zVUthZ2uMXkrHvosXkLhx", client_secret = Environment.GetEnvironmentVariable("auth0_sampleApi_client_secret"), audience = "https://quickstarts/api", grant_type = "client_credentials" }); var postBodyContent = new StringContent(json, Encoding.UTF8, "application/json"); string domain = _config["Auth0:Domain"]; var accessTokenResponse = await auth0Client.PostAsync($"https://{domain}/oauth/token", postBodyContent); ApiAccessToken apiAccessToken = null; if (accessTokenResponse.IsSuccessStatusCode) { using var responseStream = await accessTokenResponse.Content.ReadAsStreamAsync(); apiAccessToken = await JsonSerializer.DeserializeAsync <ApiAccessToken>(responseStream); } var client = _clientFactory.CreateClient(); var request = new HttpRequestMessage(HttpMethod.Get, "https://localhost:44318/api/private"); request.Headers.Add("Accept", "application/json"); request.Headers.Add("authorization", $"Bearer {apiAccessToken?.AccessToken}"); object responseObject = "sample"; using var response = await client.SendAsync(request, HttpCompletionOption.ResponseHeadersRead); if (response.IsSuccessStatusCode) { using var responseStream = await response.Content.ReadAsStreamAsync(); responseObject = await JsonSerializer.DeserializeAsync <object>(responseStream); } return(Json(responseObject)); }
protected override ApiResultMessage HandleRequest(object args) { string token = ((JObject)args)["token"].ToString(); int userId = ApiAccessToken.ValidateAndGetUserId(token); Member User = new Member(userId); //Available payment processors List <ApiPaymentProcessor> PaymentProcessors = GenerateHTMLButtons.CashoutFromItems. Select(elem => new ApiPaymentProcessor(elem.Text, elem.Value)).ToList(); return(new ApiResultMessage { success = true, message = String.Empty, data = new ApiWithdrawalData(User.GetUnpaidPayoutRequests(), PaymentProcessors, AppSettings.Registration.IsPINEnabled, User.MainBalance) }); }
protected override ApiResultMessage HandleRequest(object args) { string token = ((JObject)args)["token"].ToString(); int userId = ApiAccessToken.ValidateAndGetUserId(token); Member User = new Member(userId); //Available payment processors List <ApiPaymentProcessor> PaymentProcessors = GenerateHTMLButtons.TransferFromItems. Select(elem => new ApiPaymentProcessor(elem.Text, elem.Value)).ToList(); return(new ApiResultMessage { success = true, message = String.Empty, data = new ApiTransferData(PaymentProcessors) }); }
protected override ApiResultMessage HandleRequest(object args) { string token = ((JObject)args)["token"].ToString(); ApiJackpotTicketPurchaseData data = ((JObject)args).ToObject <ApiJackpotTicketPurchaseData>(); int userId = ApiAccessToken.ValidateAndGetUserId(token); if (!AppSettings.TitanFeatures.MoneyJackpotEnabled) { throw new MsgException("Jackpot are disabled."); } Member user = new Member(userId); Jackpot jackpot = new Jackpot(data.jackpotId); if (data.tickets <= 0) { throw new MsgException(U5003.INVALIDNUMBEROFTICKETS); } PurchaseBalances balance = (PurchaseBalances)data.balance; BalanceType targetBalance = PurchaseOption.GetBalanceType(balance); var purchaseOption = PurchaseOption.Get(PurchaseOption.Features.Jackpot); if (balance == PurchaseBalances.Purchase && !purchaseOption.PurchaseBalanceEnabled) { throw new MsgException("You can't purchase with that balance."); } if (balance == PurchaseBalances.Cash && !purchaseOption.CashBalanceEnabled) { throw new MsgException("You can't purchase with that balance."); } JackpotManager.BuyTickets(jackpot, user, data.tickets, targetBalance); return(new ApiResultMessage { success = true, message = U5003.TICKETPURCHASESUCCESS.Replace("%n%", data.tickets.ToString()), data = null }); }
protected override ApiResultMessage HandleRequest(object args) { string token = ((JObject)args)["token"].ToString(); int pin = Convert.ToInt32(((JObject)args)["pin"]); decimal amount = Convert.ToDecimal(((JObject)args)["amount"]); string processorValue = ((JObject)args)["processor"].ToString(); int userId = ApiAccessToken.ValidateAndGetUserId(token); Member User = new Member(userId); User.ValidatePIN(pin.ToString()); Money Amount = new Money(amount); Amount = Money.Parse(Amount.ToShortClearString()); var userAccountAddress = String.Empty; try { var CustomProcessor = new CustomPayoutProcessor(int.Parse(processorValue)); userAccountAddress = User.GetPaymentAddress(CustomProcessor.Id); } catch (Exception) { var selectedProcessor = processorValue; PaymentProcessor targetprocessor = PaymentAccountDetails.GetFromStringType(selectedProcessor); userAccountAddress = User.GetPaymentAddress(targetprocessor); } //Lets process to cashout PayoutManager Manager = new PayoutManager(User, Amount, processorValue, CustomPayoutProcessor.IsCustomPayoutProcessor(processorValue), CustomPayoutProcessor.GetCustomPayoutProcessorId(processorValue), userAccountAddress); string successMessage = Manager.TryMakePayout(); return(new ApiResultMessage { success = true, message = successMessage, data = null }); }
protected override ApiResultMessage HandleRequest(object args) { string token = ((JObject)args)["token"].ToString(); int userId = ApiAccessToken.ValidateAndGetUserId(token); Member User = new Member(userId); Money FirstPackPrice = Money.Zero; //Available Balances PurchaseOption purchaseOption = PurchaseOption.Get(PurchaseOption.Features.Upgrade); List <int> availableBalances = new List <int>(); if (purchaseOption.PurchaseBalanceEnabled) { availableBalances.Add((int)PurchaseBalances.Purchase); } if (purchaseOption.CashBalanceEnabled) { availableBalances.Add((int)PurchaseBalances.Cash); } //Always allow to upgrade via payment processor availableBalances.Add((int)PurchaseBalances.PaymentProcessor); //List of memberships var activeMemberships = Membership.GetActiveMembershipsDataTables(); return(new ApiResultMessage { success = true, message = String.Empty, data = new ApiUpgradeData { warningMessage = UpgradePageHelper.GetWarningMessage(User), availableMembershipPacks = MembershipPack.AllPurchaseablePacks.Select(elem => new ApiMembershipPack(User, elem)).ToList(), availableBalances = availableBalances, memberships = activeMemberships.Rows.Cast <DataRow>().Select(elem => new ApiMembership(elem)).ToList(), balances = ApiMember.GetBalances(User) } }); }
protected override ApiResultMessage HandleRequest(object args) { string token = ((JObject)args)["token"].ToString(); string from = ((JObject)args)["from"].ToString(); string to = ((JObject)args)["to"].ToString(); Money amount = new Money(Convert.ToDecimal(((JObject)args)["amount"])); bool htmlResponse = false; int userId = ApiAccessToken.ValidateAndGetUserId(token); Member User = new Member(userId); string ResultMessage = TransferHelper.TryInvokeTransfer(from, to, amount, User, ref htmlResponse); return(new ApiResultMessage { success = true, message = ResultMessage, messageIsHtml = htmlResponse, data = null }); }
public static ApiAccessToken GetOrCreate(int userId) { var tokens = TableHelper.GetListFromRawQuery <ApiAccessToken>(String.Format( "SELECT * FROM ApiAccessTokens WHERE UserId = {0} AND ExpiresDate >= '{1}'", userId, AppSettings.ServerTime.ToDBString())); ApiAccessToken result = null; if (tokens.Count > 0) { result = tokens[0]; } else { result = new ApiAccessToken(); result.UserId = userId; result.ExpiresDate = DateTime.Now.AddDays(7); result.Token = HashingManager.SHA512HMAC(HashingManager.GenerateMD5(userId + DateTime.Now.ToString()), HashingManager.SHA256(AppSettings.Offerwalls.UniversalHandlerPassword + userId + DateTime.Now)); result.Save(); } return(result); }
public static void ProceedDailyTasks() { log = new StringBuilder(); var Entry = new CronEntry(); Entry.Date = DateTime.Now; try { Log("Starting CRON procedure"); //Make sure it runs only once if (CanRun()) { AppSettings.IsOffline = true; AppSettings.Misc.LastCRONRun = DateTime.Now; AppSettings.Misc.Save(); stime = DateTime.Now; AntiCheatSystem.CRON(); Log("OK [1] AntiCheatSystem. Elapsed time: " + GetTimeString(stime)); RentReferralsSystem.CRON(); Log("OK [2] RentedReferralsSystem. Elapsed time: " + GetTimeString(stime)); StatisticsManager.CRON(); Log("OK [3a] StatisticsManager. Elapsed time: " + GetTimeString(stime)); //MUST BE RUN BEFORE MEMBERMANAGER.CRON() !!! CustomFeaturesManager.CRON(); Log("OK [3b] CustomFeaturesManager. Elapsed time: " + GetTimeString(stime)); MemberManager.CRON(); Log("OK [4] Member. Elapsed time: " + GetTimeString(stime)); SyncedNetworkFactory.SynchronizeAll(); Log("OK [5] CPA Offers. Elapsed time: " + GetTimeString(stime)); AppSettings.Payments.CRON(); Log("OK [6] Payments. Elapsed time: " + GetTimeString(stime)); ShoutboxManager.CRON(); Log("OK [7] Shoutbox. Elapsed time: " + GetTimeString(stime)); CLPManager.CRON(); Log("OK [8] CLPManager. Elapsed time: " + GetTimeString(stime)); BannerAuctionManager.CRON(); Log("OK [10] BannerAuctionManager. Elapsed time: " + GetTimeString(stime)); PointsLockingManager.CRON(); Log("OK [11] PointsLockingManager. Elapsed time: " + GetTimeString(stime)); DBArchiver.CRON(); Log("OK [12] DBArchiver. Elapsed time: " + GetTimeString(stime)); RevenueSharesDistributionManager.CRON(); Log("OK [13] RevenueSharesDistributionManager. Elapsed time: " + GetTimeString(stime)); CreditLineManager.CRON(); Log("OK [14] CreditLineManager. Elapsed time: " + GetTimeString(stime)); PoolRotatorManager.CRON(); Log("OK [15] PoolRotatorManager. Elapsed time: " + GetTimeString(stime)); JackpotManager.CRON(); Log("OK [16] JackpotManager. Elapsed time: " + GetTimeString(stime)); TrafficExchangeManager.CRON(); Log("OK [17] TrafficExchangeManager. Elapsed time: " + GetTimeString(stime)); DailyPoolManager.CRON(); Log("OK [18] DailyPoolManager. Elapsed time: " + GetTimeString(stime)); //Matrix MatrixBase matrix = MatrixFactory.GetMatrix(); if (matrix != null) { matrix.CRON(); } Log("OK [19] MatrixBase. Elapsed time: " + GetTimeString(stime)); ApiAccessToken.CRON(); Log("OK [20] ApiAccessToken. Elapsed time: " + GetTimeString(stime)); InvestmentPlatformManager.CRON(); Log("OK [21] InvestmentPlatformManager. Elapsed time: " + GetTimeString(stime)); MarketplaceBalanceLogManager.CRON(); Log("OK [22] MarketplaceBalanceLogManager. Elapsed time: " + GetTimeString(stime)); MiniVideoManager.CRON(); Log("OK [23] MiniVideoManager. Elapsed time: " + GetTimeString(stime)); PaidToPromoteManager.CRON(); Log("OK [24] PaidToPromoteManager. Elapsed time: " + GetTimeString(stime)); RollDiceLotteryManager.CRON(); Log("OK [25] RollDiceLotteryManager. Elapsed time: " + GetTimeString(stime)); WalletManager.CRON(); Log("OK [26] WalletManager. Elapsed time: " + GetTimeString(stime)); NewsManager.CRON(); Log("OK [27] NewsManager. Elapsed time: " + GetTimeString(stime)); Entry.Type = 1; Entry.Text = "Procedure completed successfully (27/27 100%) after " + GetTimeString(stime); } else { Entry.Type = 2; Entry.Text = "Procedure prevented from multiple run"; } } catch (Exception ex) { ErrorLogger.Log(ex); Log("Fatal error (exception thrown).."); Entry.Type = 3; Entry.Text = "Fatal error during procedure execution. Check logs for more information"; Mailer.SendCRONFailureMessage(); } finally { ErrorLogger.Log(log.ToString(), LogType.CRON); AppSettings.IsOffline = false; Entry.Save(); HttpContext.Current.Response.Write(Entry.Text); } }