public async Task TestSubscriptionTierCheck()
        {
            var dbContext = TestUtils.CreateDatabase();

            try
            {
                var testName = "test";
                var testId   = "auth0|test";

                TestUtils.TryRemoveTestUser(testId);

                TestUtils.CreateTestUser(testName, testId);
                var user = dbContext.JoinUserModels().FirstOrDefault(u => u.UserIdentity.Auth0Id == testId);
                user.UserWallet.Balance += 10000001;
                dbContext.SaveChanges();
                var resp = await SubscriptionUtils.Subscribe(dbContext, user, new SubRequest()
                {
                    SubscriptionName = "BITCORNFarms",
                    Tier             = 1,
                    Platform         = "test",
                    Amount           = 100000
                });

                Assert.False(await SubscriptionUtils.HasSubscribed(dbContext, user, "BITCORNFarms", 2));
            }
            finally
            {
                dbContext.Dispose();
            }
        }
Exemplo n.º 2
0
        public async Task <ActionResult <bool> > IsSubbed([FromRoute] string platformId, [FromRoute] string subscriptionName, [FromQuery] string subTier = null)
        {
            if (string.IsNullOrEmpty(platformId))
            {
                throw new ArgumentException("platformId");
            }
            if (string.IsNullOrEmpty(subscriptionName))
            {
                throw new ArgumentException("subscriptionName");
            }
            try
            {
                var id   = BitcornUtils.GetPlatformId(platformId);
                var user = await BitcornUtils.GetUserForPlatform(id, _dbContext).FirstOrDefaultAsync();

                if (user != null)
                {
                    int?tier = null;
                    if (!string.IsNullOrEmpty(subTier))
                    {
                        try
                        {
                            tier = int.Parse(subTier);
                        }
                        catch { }
                    }

                    return(await SubscriptionUtils.HasSubscribed(_dbContext, user, subscriptionName, tier));
                }
                else
                {
                    return(StatusCode(404));
                }
            }
            catch (Exception e)
            {
                await BITCORNLogger.LogError(_dbContext, e, JsonConvert.SerializeObject(new {
                    subTier,
                    platformId,
                    subscriptionName
                }));

                throw e;
            }
        }
        public async Task TestNotSubbedCheck()
        {
            var dbContext = TestUtils.CreateDatabase();

            try
            {
                var testName = "test";
                var testId   = "auth0|test";

                TestUtils.TryRemoveTestUser(testId);

                TestUtils.CreateTestUser(testName, testId);
                var user = dbContext.JoinUserModels().FirstOrDefault(u => u.UserIdentity.Auth0Id == testId);

                Assert.False(await SubscriptionUtils.HasSubscribed(dbContext, user, "BITCORNFarms", 1));
            }
            finally
            {
                dbContext.Dispose();
            }
        }