예제 #1
0
        public OrderConfirmationViewModel Build(PageModel pageModel)
        {
            var model = pageModel.MapTo <OrderConfirmationViewModel>();
            var order = _moduleECommerce.Orders.GetOrder(_requestModelAccessor.RequestModel.Cart.OrderCarrier.ExternalOrderID, SecurityToken.CurrentSecurityToken);

            if (order != null)
            {
                model.Order = _orderViewModelBuilder.Build(order);
            }
            return(model);
        }
예제 #2
0
        public OrderConfirmationViewModel Build(PageModel pageModel)
        {
            var model       = pageModel.MapTo <OrderConfirmationViewModel>();
            var cartContext = _cartContextAccessor.CartContext;

            if (cartContext != null)
            {
                var order = _orderOverviewService.Get(cartContext.Cart.Order.SystemId);
                if (order != null)
                {
                    model.Order = _orderViewModelBuilder.Build(order);
                }
            }
            return(model);
        }
        private List <OrderDetailsViewModel> GetOrders(OrderHistoryViewModel model, int pageIndex, int pageSize, out int totalOrderCount)
        {
            var orders = new List <OrderDetailsViewModel>();

            totalOrderCount = 0;
            var personId = _securityContextService.GetIdentityUserSystemId();

            if (!ModuleECommerce.ExistsInstance || !personId.HasValue)
            {
                return(orders);
            }

            var searchRequest = new QueryRequest(_languageService.Get(CultureInfo.CurrentCulture).SystemId, ECommerceSearchDomains.Orders, Solution.Instance.SystemToken)
            {
                Paging = new Paging(pageIndex, pageSize)
            };

            if (model.IsBusinessCustomer)
            {
                searchRequest.FilterTags.Add(new Tag(TagNames.OrganizationID, _personStorage.CurrentSelectedOrganization.SystemId));
                if (model.ShowOnlyMyOrders || !model.HasApproverRole)
                {
                    searchRequest.FilterTags.Add(new Tag(TagNames.PersonID, personId.Value));
                }
            }
            else
            {
                searchRequest.FilterTags.Add(new Tag(TagNames.PersonID, personId.Value));
            }

            searchRequest.ExcludeTags.Add(new Tag(TagNames.OrderStatus, (short)OrderState.Invalid));
            searchRequest.ExcludeTags.Add(new Tag(TagNames.OrderStatus, (short)OrderState.Init));
            searchRequest.Sortings.Add(new Sorting(TagNames.OrderNumber, SortDirection.Descending, SortingFieldType.String));

            var responce = Solution.Instance.SearchService.Search(searchRequest);

            totalOrderCount = responce.TotalHitCount;

            foreach (var order in _moduleECommerce.Orders.GetOrders(responce.Hits.Select(x => new Guid(x.Id)), Solution.Instance.SystemToken))
            {
                if (order.OrderStatus != (short)OrderState.Invalid && order.OrderStatus != (short)OrderState.Init)
                {
                    orders.Add(_orderViewModelBuilder.Build(order));
                }
            }

            return(orders);
        }
예제 #4
0
        private List <OrderDetailsViewModel> GetOrders(OrderHistoryViewModel model, int pageIndex, int pageSize, out int totalOrderCount)
        {
            var orders = new List <OrderDetailsViewModel>();

            totalOrderCount = 0;
            var personId = _securityContextService.GetIdentityUserSystemId();

            if (!personId.HasValue)
            {
                return(orders);
            }
            using (var query = _dataserivce.CreateQuery <SalesOrder>())
            {
                var queryResult = query.Filter(filter =>
                {
                    if (model.IsBusinessCustomer)
                    {
                        filter.OrganizationSystemId(_personStorage.CurrentSelectedOrganization.SystemId);
                        if (model.ShowOnlyMyOrders || !model.HasApproverRole)
                        {
                            filter.PersonSystemId(personId.Value);
                        }
                    }
                    else
                    {
                        filter.PersonSystemId(personId.Value);
                    }
                })
                                  .Sort(descriptor => descriptor.OrderNumber(Data.Queryable.SortDirection.Descending));

                totalOrderCount = queryResult.Count();
                var orderSystemIds = queryResult
                                     .Skip((pageIndex - 1) * pageSize)
                                     .Take(pageSize)
                                     .ToSystemIdList();
                orders = _orderOverviewService.Get(orderSystemIds).Select(x => _orderViewModelBuilder.Build(x)).ToList();
            }
            return(orders);
        }