/// <summary> /// Prepare shopping cart search model /// </summary> /// <param name="searchModel">Shopping cart search model</param> /// <returns>Shopping cart search model</returns> public virtual ShoppingCartSearchModel PrepareShoppingCartSearchModel(ShoppingCartSearchModel searchModel) { if (searchModel == null) { throw new ArgumentNullException(nameof(searchModel)); } //prepare available shopping cart types _baseAdminModelFactory.PrepareShoppingCartTypes(searchModel.AvailableShoppingCartTypes, false); //set default search values searchModel.ShoppingCartType = ShoppingCartType.ShoppingCart; //prepare available billing countries searchModel.AvailableCountries = _countryService.GetAllCountriesForBilling(showHidden: true) .Select(country => new SelectListItem { Text = country.Name, Value = country.Id.ToString() }).ToList(); searchModel.AvailableCountries.Insert(0, new SelectListItem { Text = _localizationService.GetResource("Admin.Common.All"), Value = "0" }); //prepare available stores _baseAdminModelFactory.PrepareStores(searchModel.AvailableStores); searchModel.HideStoresList = _catalogSettings.IgnoreStoreLimitations || searchModel.AvailableStores.SelectionIsNotPossible(); //prepare nested search model PrepareShoppingCartItemSearchModel(searchModel.ShoppingCartItemSearchModel); //prepare page parameters searchModel.SetGridPageSize(); return(searchModel); }
public virtual async Task <IActionResult> CurrentCarts(ShoppingCartSearchModel searchModel) { if (!await _permissionService.AuthorizeAsync(StandardPermissionProvider.ManageCurrentCarts)) { return(await AccessDeniedDataTablesJson()); } //prepare model var model = await _shoppingCartModelFactory.PrepareShoppingCartListModelAsync(searchModel); return(Json(model)); }
public virtual IActionResult CurrentCarts(ShoppingCartSearchModel searchModel) { if (!_permissionService.Authorize(StandardPermissionProvider.ManageCurrentCarts)) { return(AccessDeniedKendoGridJson()); } //prepare model var model = _shoppingCartModelFactory.PrepareShoppingCartListModel(searchModel); return(Json(model)); }
/// <summary> /// Prepare shopping cart search model /// </summary> /// <param name="searchModel">Shopping cart search model</param> /// <returns>Shopping cart search model</returns> public virtual ShoppingCartSearchModel PrepareShoppingCartSearchModel(ShoppingCartSearchModel searchModel) { if (searchModel == null) { throw new ArgumentNullException(nameof(searchModel)); } //prepare available shopping cart types _baseAdminModelFactory.PrepareShoppingCartTypes(searchModel.AvailableShoppingCartTypes, false); //set default search values searchModel.ShoppingCartType = ShoppingCartType.ShoppingCart; //prepare nested search model PrepareShoppingCartItemSearchModel(searchModel.ShoppingCartItemSearchModel); //prepare page parameters searchModel.SetGridPageSize(); return(searchModel); }
/// <summary> /// Prepare paged shopping cart list model /// </summary> /// <param name="searchModel">Shopping cart search model</param> /// <returns>Shopping cart list model</returns> public virtual ShoppingCartListModel PrepareShoppingCartListModel(ShoppingCartSearchModel searchModel) { if (searchModel == null) { throw new ArgumentNullException(nameof(searchModel)); } //get customers with shopping carts var customers = _customerService.GetCustomersWithShoppingCarts(searchModel.ShoppingCartType, storeId: searchModel.StoreId, productId: searchModel.ProductId, createdFromUtc: searchModel.StartDate, createdToUtc: searchModel.EndDate, countryId: searchModel.BillingCountryId, pageIndex: searchModel.Page - 1, pageSize: searchModel.PageSize); //prepare list model var model = new ShoppingCartListModel { Data = customers.Select(customer => { //fill in model values from the entity var shoppingCartModel = new ShoppingCartModel { CustomerId = customer.Id }; //fill in additional values (not existing in the entity) shoppingCartModel.CustomerEmail = customer.IsRegistered() ? customer.Email : _localizationService.GetResource("Admin.Customers.Guest"); shoppingCartModel.TotalItems = _shoppingCartService.GetShoppingCart(customer, searchModel.ShoppingCartType, searchModel.StoreId, searchModel.ProductId, searchModel.StartDate, searchModel.EndDate).Sum(item => item.Quantity); return(shoppingCartModel); }), Total = customers.TotalCount }; return(model); }
/// <summary> /// Prepare paged shopping cart list model /// </summary> /// <param name="searchModel">Shopping cart search model</param> /// <returns>Shopping cart list model</returns> public virtual ShoppingCartListModel PrepareShoppingCartListModel(ShoppingCartSearchModel searchModel) { if (searchModel == null) { throw new ArgumentNullException(nameof(searchModel)); } //get customers with shopping carts var customers = _customerService.GetAllCustomers(loadOnlyWithShoppingCart: true, sct: searchModel.ShoppingCartType, pageIndex: searchModel.Page - 1, pageSize: searchModel.PageSize); //prepare list model var model = new ShoppingCartListModel { Data = customers.Select(customer => { //fill in model values from the entity var shoppingCartModel = new ShoppingCartModel { CustomerId = customer.Id }; //fill in additional values (not existing in the entity) shoppingCartModel.CustomerEmail = customer.IsRegistered() ? customer.Email : _localizationService.GetResource("Admin.Customers.Guest"); shoppingCartModel.TotalItems = customer.ShoppingCartItems .Where(item => item.ShoppingCartType == searchModel.ShoppingCartType).Sum(item => item.Quantity); return(shoppingCartModel); }), Total = customers.TotalCount }; return(model); }
/// <summary> /// Prepare paged shopping cart list model /// </summary> /// <param name="searchModel">Shopping cart search model</param> /// <returns> /// A task that represents the asynchronous operation /// The task result contains the shopping cart list model /// </returns> public virtual async Task <ShoppingCartListModel> PrepareShoppingCartListModelAsync(ShoppingCartSearchModel searchModel) { if (searchModel == null) { throw new ArgumentNullException(nameof(searchModel)); } //get customers with shopping carts var customers = await _customerService.GetCustomersWithShoppingCartsAsync(searchModel.ShoppingCartType, storeId : searchModel.StoreId, productId : searchModel.ProductId, createdFromUtc : searchModel.StartDate, createdToUtc : searchModel.EndDate, countryId : searchModel.BillingCountryId, pageIndex : searchModel.Page - 1, pageSize : searchModel.PageSize); //prepare list model var model = await new ShoppingCartListModel().PrepareToGridAsync(searchModel, customers, () => { return(customers.SelectAwait(async customer => { //fill in model values from the entity var shoppingCartModel = new ShoppingCartModel { CustomerId = customer.Id }; //fill in additional values (not existing in the entity) shoppingCartModel.CustomerEmail = (await _customerService.IsRegisteredAsync(customer)) ? customer.Email : await _localizationService.GetResourceAsync("Admin.Customers.Guest"); shoppingCartModel.TotalItems = (await _shoppingCartService .GetShoppingCartAsync(customer, searchModel.ShoppingCartType, searchModel.StoreId, searchModel.ProductId, searchModel.StartDate, searchModel.EndDate)) .Sum(item => item.Quantity); return shoppingCartModel; })); }); return(model); }