Ejemplo n.º 1
0
        public async Task <IActionResult> AllByUserId()
        {
            ApplicationUser user = await this.userManager.GetUserAsync(this.User);

            AllOrdersByUserIdListViewModel viewModel = new AllOrdersByUserIdListViewModel
            {
                Orders = this.ordersService.GetAllByUserId <AllOrdersByUserIdViewModel>(user.Id),
            };

            return(this.View(viewModel));
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> Charge(string stripeEmail, string stripeToken)
        {
            ApplicationUser user = await this.userManager.GetUserAsync(this.User);

            AllOrdersByUserIdListViewModel viewModel = new AllOrdersByUserIdListViewModel
            {
                Orders = this.ordersService.GetAllByUserId <AllOrdersByUserIdViewModel>(user.Id),
            };

            var customers = new CustomerService();
            var charges   = new ChargeService();

            var customer = customers.Create(new CustomerCreateOptions
            {
                Email  = stripeEmail,
                Source = stripeToken,
            });

            var charge = charges.Create(new ChargeCreateOptions
            {
                Amount      = (int)viewModel.Orders.Sum(o => o.CoursePrice) * 100,
                Description = "Sample Charge",
                Currency    = "usd",
                Customer    = customer.Id,
            });

            foreach (var course in viewModel.Orders.Select(o => o.CourseId))
            {
                await this.coursesService.EnrollAsync(course, user.Id);
            }

            foreach (var course in viewModel.Orders.Select(o => o.CourseId))
            {
                await this.ordersService.DeleteAsync(course, user.Id);
            }

            return(this.Redirect($"/Courses/AllByUser/{user.Id}"));
        }