// GET: Admin/SubscriptionProduct/Create
        public async Task <ActionResult> Create()
        {
            var model = new SubscriptionProductModel
            {
                Subscriptions = await db.Subscriptions.ToListAsync(),
                Products      = await db.Products.ToListAsync()
            };

            return(View(model));
        }
        // GET: Admin/SubscriptionProduct/Create
        public async Task <ActionResult> Create()
        {
            //Create instance of SubscriptionProductModel and pass it into view
            var model = new SubscriptionProductModel
            {
                Subscriptions = await db.Subscriptions.ToListAsync(),
                Products      = await db.Products.ToListAsync()
            };

            return(View(model));
        }
        public static async Task <SubscriptionProductModel> Convert(this SubscriptionProduct subscriptionProducts, ApplicationDbContext db, bool addListData = true)
        {
            var model = new SubscriptionProductModel
            {
                SubscriptionId    = subscriptionProducts.SubscriptionId,
                ProductId         = subscriptionProducts.ProductId,
                Subscriptions     = addListData ? await db.Subscriptions.ToListAsync() : null,
                Products          = addListData ? await db.Products.ToListAsync() : null,
                SubscriptionTitle = (await db.Subscriptions.FirstOrDefaultAsync(i => i.Id.Equals(subscriptionProducts.SubscriptionId))).Title,
                ProductTitle      = (await db.Products.FirstOrDefaultAsync(p => p.Id.Equals(subscriptionProducts.ProductId))).Title
            };

            return(model);
        }
        // Take one SubscriptionProduct and Convert into one SubscriptionProductMdoel
        public static async Task <SubscriptionProductModel> Convert
            (this SubscriptionProduct subscriptionProduct, ApplicationDbContext db)
        {
            // Link using linq
            var model = new SubscriptionProductModel
            {
                ProductId      = subscriptionProduct.ProductId,
                SubscriptionId = subscriptionProduct.SubscriptionId,
                Products       = await db.Products.ToListAsync(),
                Subscriptions  = await db.Subscriptions.ToListAsync()
            };

            return(model);
        }
        // GET: Admin/SubscriptionProduct/Details/5
        public async Task <ActionResult> Details(int?subscriptionId, int?productId)
        {
            if (subscriptionId == null || productId == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            SubscriptionProduct subscriptionProduct = await GetSubscriptionProduct(subscriptionId, productId);

            if (subscriptionProduct == null)
            {
                return(HttpNotFound());
            }
            SubscriptionProductModel model = await subscriptionProduct.Convert(db);

            return(View(model));
        }