/// <summary> /// Prepare paged user address list model /// </summary> /// <param name="searchModel">User address search model</param> /// <param name="user">User</param> /// <returns>User address list model</returns> public virtual UserAddressListModel PrepareUserAddressListModel(UserAddressSearchModel searchModel, User user) { if (searchModel == null) { throw new ArgumentNullException(nameof(searchModel)); } if (user == null) { throw new ArgumentNullException(nameof(user)); } //get user addresses var addresses = user.Addresses .OrderByDescending(address => address.CreatedOnUtc).ThenByDescending(address => address.Id).ToList(); //prepare list model var model = new UserAddressListModel { Data = addresses.PaginationByRequestModel(searchModel).Select(address => { //fill in model values from the entity var addressModel = address.ToModel <AddressModel>(); //fill in additional values (not existing in the entity) PrepareModelAddressHtml(addressModel, address); return(addressModel); }), Total = addresses.Count }; return(model); }
/// <summary> /// Prepare the user address list model /// </summary> /// <returns>User address list model</returns> public virtual UserAddressListModel PrepareUserAddressListModel() { var addresses = _workContext.CurrentUser.Addresses.ToList(); var model = new UserAddressListModel(); foreach (var address in addresses) { var addressModel = new AddressModel(); _addressModelFactory.PrepareAddressModel(addressModel, address: address, excludeProperties: false, addressSettings: _addressSettings, loadCountries: () => _countryService.GetAllCountries(_workContext.WorkingLanguage.Id)); model.Addresses.Add(addressModel); } return(model); }