private CartIndexViewModel GetCartIndexModel(CartIndexSearchCriteria criteriaModel, string message = "") { User user = GetCurrentUser(); CartSearchCriterias criteria = criteriaModel.ToSearchCriteria(user.Id); IQueryResult <Cart> results = CartService.Obj.Find(criteria); var result = new CartIndexViewModel { Items = results.Items.Select(x => x.ToViewModel()).ToList(), TotalCount = results.TotalCount, PageSize = PageSize, SearchCriteriaModel = criteriaModel, Message = message }; foreach (var cart in result.Items) { cart.AccessLevel = CartOwnerService.Obj.GetCartUser(cart.CartId.Value, user.Id).AccessLevel; cart.Items = Domain.Service.User.ItemService.Obj.GetItemsByCard(cart.CartId.Value).Select(x => x.ToViewModel(ItemService.Obj.GetById(x.ItemId))).ToList(); cart.Users = CartOwnerService.Obj.GetUsersByCart(cart.CartId.Value, user.Id).Select(x => x.ToUserProfileViewModel(UserService.Obj.FindById(x.UserId), ImageService.Obj.FindByUserId(x.UserId))).ToList(); } return(result); }
public static CartSearchCriterias ToSearchCriteria(this CartIndexSearchCriteria model, int userId) { CartSearchCriterias criteria = CreateSearchCriteria <CartSearchCriterias>(model); criteria.UserId = userId; return(criteria); }
public IQueryResult <Cart> Find(CartSearchCriterias criterias) { if (criterias == null) { throw new ArgumentNullException(nameof(criterias)); } List <CartOwner> carts = CartOwnerService.Obj.GetCartsByUser(criterias.UserId); var cartIds = carts.Select(x => x.CartId).ToList(); IQueryConstraints <Cart> constraints = new QueryConstraints <Cart>() .PageAndSort(criterias, x => x.CartId) .AndAlso(x => cartIds.Contains(x.CartId)); IQueryResult <Cart> result = queryRepository.Find(constraints); Tracer.Log.EntitiesRetrieved(nameof(Cart), result.Items.Count(), result.TotalCount); return(result); }