private async Task <orderModel.CustomerOrder> GetOrderDtoByNumber(string number)
        {
            var order = await _orderApi.GetByNumberAsync(number);

            if (order == null || order.CustomerId != WorkContext.CurrentUser.Id)
            {
                throw new StorefrontException($"Order with number {{ number }} not found (or not belongs to current user)");
            }

            return(order);
        }
        private async Task <orderModel.CustomerOrder> GetOrderDtoByNumber(string number)
        {
            var order = await _orderApi.GetByNumberAsync(number);

            var authorizationResult = await _authorizationService.AuthorizeAsync(User, order, CanAccessOrderAuthorizationRequirement.PolicyName);

            if (!authorizationResult.Succeeded)
            {
                throw new StorefrontException($"Order with number {{ number }} not found (or not belongs to current user)");
            }

            return(order);
        }
        public async Task <ActionResult <CustomerOrder> > GetCustomerOrder(string orderNumber)
        {
            var orderDto = await _orderApi.GetByNumberAsync(orderNumber);

            var authorizationResult = await _authorizationService.AuthorizeAsync(User, orderDto, CanAccessOrderAuthorizationRequirement.PolicyName);

            if (!authorizationResult.Succeeded)
            {
                return(Unauthorized());
            }
            return(orderDto.ToCustomerOrder(WorkContext.AllCurrencies, WorkContext.CurrentLanguage));
        }
        public async Task <ActionResult <CustomerOrder> > GetCustomerOrder(string orderNumber)
        {
            var orderDto = await _orderApi.GetByNumberAsync(orderNumber, string.Empty);

            var authorizationResult = await _authorizationService.AuthorizeAsync(User, orderDto, CanAccessOrderAuthorizationRequirement.PolicyName);

            if (!authorizationResult.Succeeded)
            {
                return(Unauthorized());
            }
            var order = orderDto.ToCustomerOrder(WorkContext.AllCurrencies, WorkContext.CurrentLanguage);
            await _orderService.LoadProductsAsync(order);

            _orderService.SelectConfiguredProductParts(order);
            return(order);
        }
        public async Task <CustomerOrder> GetOrderByNumberAsync(string number)
        {
            var workContext = _workContextAccessor.WorkContext;

            return((await _orderApi.GetByNumberAsync(number))?.ToCustomerOrder(workContext.AllCurrencies, workContext.CurrentLanguage));
        }