public async Task FillSubscriptions(BeAuthIdentity user)
        {
            var set           = _context.Set <Subscription>();
            var subscriptions = await set.Where(_ => _.User == user.Id)
                                .Include(_ => _.Products)
                                .ToListAsync();

            await ValidateSubscriptions(subscriptions, user);
        }
 private static Subscription CreateDefaultSubscription(BeAuthIdentity user)
 {
     return(new Subscription
     {
         Owner = user.Id,
         User = user.Id,
         Status = SubscriptionStatus.Active,
         Products = new List <SubscriptionProduct>
         {
             new SubscriptionProduct
             {
                 Id = "",
                 ProductId = "",
                 Product = new Product {
                     Id = "", Name = "Default"
                 }
             }
         }
     });
 }
Beispiel #3
0
        public static ClaimsIdentity IssueFor(BeAuthIdentity user)
        {
            //Cache operations

            // Get subscription information.
            var subscription = user.Subscriptions.FirstOrDefault(p => p.Number == user.ActiveSubscription);

            subscription ??= user.Subscriptions.FirstOrDefault();

            // Issue
            var identity = new ClaimsIdentity("BeAuthIdentity");

            identity.AddClaim(new Claim(SubscriptionClaimTypes.User, subscription.User));
            identity.AddClaim(new Claim(SubscriptionClaimTypes.Owner, subscription.Owner));

            foreach (var product in subscription.Products)
            {
                identity.AddClaim(new Claim(SubscriptionClaimTypes.Product, product.Product.Name));
            }

            return(identity);
        }
        public async Task ValidateSubscriptions(ICollection <Subscription> subscriptions, BeAuthIdentity user)
        {
            if (subscriptions == null || subscriptions.Count == 0)
            {
                subscriptions = new List <Subscription>
                {
                    CreateDefaultSubscription(user)
                };
            }

            user.Subscriptions = subscriptions;
        }