Пример #1
0
        public async Task <IActionResult> ApiCreate(ApiCreateViewModel model)
        {
            var user = await GetUser(required : true);

            // check 2fa authentication
            if (user.TwoFactorEnabled)
            {
                if (model.TwoFactorCode == null)
                {
                    model.TwoFactorCode = "";
                }
                var authenticatorCode = model.TwoFactorCode.Replace(" ", string.Empty).Replace("-", string.Empty);
                if (!await _userManager.VerifyTwoFactorTokenAsync(user, _userManager.Options.Tokens.AuthenticatorTokenProvider, authenticatorCode))
                {
                    this.FlashError($"Invalid authenticator code");
                    model.TwoFactorRequired = true;
                    return(View(model));
                }
            }

            var apikey = Utils.CreateApiKey(user, -1, -1, model.DeviceName);

            _context.ApiKeys.Add(apikey);
            _context.SaveChanges();
            this.FlashSuccess($"Created API KEY ({apikey.Name} - Key: {apikey.Key} - Secret: {apikey.Secret})");
            return(RedirectToAction(nameof(Api)));
        }
Пример #2
0
        public async Task <IActionResult> ApiCreate()
        {
            var user = await GetUser(required : true);

            var model = new ApiCreateViewModel {
                User = user, TwoFactorRequired = user.TwoFactorEnabled
            };

            return(View(model));
        }
Пример #3
0
        public async Task <IActionResult> CreateOrder([FromBody] ApiCreateViewModel viewModel)
        {
            var customer = await _context.Customers.SingleOrDefaultAsync(c => c.Id == viewModel.CustomerId);

            var products = await _context.Products
                           .Where(p => viewModel.Items.Any(i => i.ProductId == p.Id))
                           .ToArrayAsync();

            _context.Add(new Order
            {
                OrderDate = DateTime.UtcNow,
                Customer  = customer,
                LineItems = products.Select(p => new OrderLineItem
                {
                    Product  = p,
                    Quantity = viewModel.Items.First(i => i.ProductId == p.Id).Quantity
                }).ToArray()
            });
            await _context.SaveChangesAsync();

            return(Ok());
        }