Exemplo n.º 1
0
        public CustomerAddressListModel FindCustomerAddressesListModel(int customerId, int index, int pageNo, int pageSize, string search)
        {
            var model = new CustomerAddressListModel();

            // Do a case-insensitive search
            model.GridIndex = index;
            var allItems = db.FindCustomerAddresses(customerId)
                           .Where(ca => string.IsNullOrEmpty(search) ||
                                  (ca.Street != null && ca.Street.ToLower().Contains(search.ToLower())) ||
                                  (ca.City != null && ca.City.ToLower().Contains(search.ToLower())) ||
                                  (ca.State != null && ca.State.ToLower().Contains(search.ToLower())) ||
                                  (ca.Postcode != null && ca.Postcode.ToLower().Contains(search.ToLower())) ||
                                  (ca.StreetLine1 != null && ca.StreetLine1.ToLower().Contains(search.ToLower())) ||
                                  (ca.StreetLine2 != null && ca.StreetLine2.ToLower().Contains(search.ToLower())) ||
                                  (ca.StreetLine3 != null && ca.StreetLine3.ToLower().Contains(search.ToLower())) ||
                                  (ca.StreetLine4 != null && ca.StreetLine4.ToLower().Contains(search.ToLower())))
                           .OrderByDescending(ca => ca.DateStart)
                           .ThenByDescending(ca => ca.DateEnd)
                           .ThenBy(ca => ca.Street);

            model.TotalRecords = allItems.Count();
            foreach (var item in allItems.Skip((pageNo - 1) * pageSize)
                     .Take(pageSize))
            {
                var newItem = MapToModel(item);
                newItem.AddressTypeText = (item.LOVItem_AddressType == null ? "" : item.LOVItem_AddressType.ItemText);
                model.Items.Add(newItem);
            }
            return(model);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Prepare paged customer address list model
        /// </summary>
        /// <param name="searchModel">Customer address search model</param>
        /// <param name="customer">Customer</param>
        /// <returns>Customer address list model</returns>
        public virtual CustomerAddressListModel PrepareCustomerAddressListModel(CustomerAddressSearchModel searchModel, Customer customer)
        {
            if (searchModel == null)
            {
                throw new ArgumentNullException(nameof(searchModel));
            }

            if (customer == null)
            {
                throw new ArgumentNullException(nameof(customer));
            }

            //get customer addresses
            var addresses = customer.Addresses
                            .OrderByDescending(address => address.CreatedOnUtc).ThenByDescending(address => address.Id).ToList();

            //prepare list model
            var model = new CustomerAddressListModel
            {
                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);
        }
Exemplo n.º 3
0
        public PartialViewResult ContactAddresses(int?languageId)
        {
            var customer = _workContext.CurrentCustomer;

            var model = new CustomerAddressListModel();

            foreach (var address in customer.Addresses)
            {
                if (address.Email == null)
                {
                    _addressService.DeleteAddress(address);
                    continue;
                }
                var addressModel = new AddressModel();
                addressModel.PrepareModel(address, false, _addressSettings, _localizationService,
                                          _stateProvinceService, () => _countryService.GetAllCountries(), languageId: languageId);
                model.Addresses.Add(addressModel);
            }
            model.MaxContactCount = _addressSettings.MaxContactCount;

            model.AvailableCountries = new List <SelectListItem>();
            model.AvailableCountries.Add(new SelectListItem()
            {
                Text = _localizationService.GetResource("Address.SelectCountry"), Value = "0"
            });
            foreach (var c in _countryService.GetAllCountries())
            {
                model.AvailableCountries.Add(new SelectListItem()
                {
                    Text = c.GetLocalized(x => x.Name), Value = c.Id.ToString()
                });
            }
            model.LanguageId = languageId.Value;
            return(PartialView(model));
        }
Exemplo n.º 4
0
        public virtual async Task <CustomerAddressListModel> PrepareCompanyCustomerAddressListModelAsync(CustomerAddressSearchModel searchModel, Company company)
        {
            if (searchModel == null)
            {
                throw new ArgumentNullException(nameof(searchModel));
            }

            if (company == null)
            {
                throw new ArgumentNullException(nameof(company));
            }

            var model = new CustomerAddressListModel();
            var getCompanyCustomers = await _companyService.GetCompanyCustomersByCompanyIdAsync(company.Id);

            IPagedList <Address> addressesList = new PagedList <Address>(new List <Address>(), 0, 1);

            foreach (var getCompanyCustomer in getCompanyCustomers)
            {
                var customer = await _customerService.GetCustomerByIdAsync(getCompanyCustomer.CustomerId);

                //get customer addresses
                var addresses = (await _customerService.GetAddressesByCustomerIdAsync(customer.Id))
                                .OrderByDescending(address => address.CreatedOnUtc).ThenByDescending(address => address.Id).ToList()
                                .ToPagedList(searchModel);

                foreach (var address in addresses)
                {
                    if (!addressesList.Where(x => x.Id == address.Id).Any())
                    {
                        addressesList.Add(address);
                    }
                }
                searchModel.CustomerId = customer.Id;
            }

            //prepare list model
            model = await new CustomerAddressListModel().PrepareToGridAsync(searchModel, addressesList, () =>
            {
                return(addressesList.SelectAwait(async address =>
                {
                    //fill in model values from the entity
                    var addressModel = address.ToModel <AddressModel>();

                    var customerAddressMapping = await _customerService.GetCustomerAddressesByAddressIdAsync(address.Id);
                    addressModel.CustomerId = customerAddressMapping.Any() ? customerAddressMapping.FirstOrDefault().CustomerId : 0;
                    addressModel.CountryName = (await _countryService.GetCountryByAddressAsync(address))?.Name;
                    addressModel.StateProvinceName = (await _stateProvinceService.GetStateProvinceByAddressAsync(address))?.Name;

                    //fill in additional values (not existing in the entity)
                    await PrepareModelAddressHtmlAsync(addressModel, address);

                    return addressModel;
                }));
            });
            return(model);
        }
Exemplo n.º 5
0
        public CustomerAddressListModel FindCustomerAddressesListModel(int customerId)
        {
            var model = new CustomerAddressListModel();

            foreach (var item in db.FindCustomerAddresses(customerId))
            {
                model.Items.Add(MapToModel(item));
            }
            return(model);
        }
        public ActionResult Delete(int index, int id)
        {
            var model = new CustomerAddressListModel();

            model.GridIndex = index;

            try {
                CustomerService.DeleteCustomerAddress(id);
            } catch (Exception e1) {
                model.Error.SetError(e1);
            }
            return(Json(model, JsonRequestBehavior.AllowGet));
        }
        public virtual CustomerAddressListModel PrepareCustomerAddressListModel()
        {
            var addresses = _workContext.CurrentCustomer.Addresses
                            //enabled for the current store
                            .Where(a => a.Country == null || _storeMappingService.Authorize(a.Country))
                            .ToList();

            var model = new CustomerAddressListModel();

            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);
        }
        public virtual CustomerAddressListModel PrepareAddressList(Customer customer)
        {
            var model     = new CustomerAddressListModel();
            var addresses = customer.Addresses
                            .Where(a => a.CountryId == "" ||
                                   _storeMappingService.Authorize(_countryService.GetCountryById(a.CountryId))
                                   )
                            .ToList();

            foreach (var address in addresses)
            {
                var addressModel = new AddressModel();
                _addressViewModelService.PrepareModel(model: addressModel,
                                                      address: address,
                                                      excludeProperties: false,
                                                      loadCountries: () => _countryService.GetAllCountries(_workContext.WorkingLanguage.Id));
                model.Addresses.Add(addressModel);
            }

            return(model);
        }
Exemplo n.º 9
0
        public ActionResult CompanyContacts()
        {
            var customer = _workContext.CurrentMiniSite.Customer;

            var model = new CustomerAddressListModel();

            foreach (var address in customer.Addresses)
            {
                if (address.Email == null)
                {
                    _addressService.DeleteAddress(address);
                    continue;
                }
                var addressModel = new AddressModel();
                addressModel.PrepareModel(address, false, _addressSettings, _localizationService,
                                          _stateProvinceService, () => _countryService.GetAllCountries(), languageId: _workContext.WorkingLanguage.Id);
                model.Addresses.Add(addressModel);
            }

            return(View(model));
        }
Exemplo n.º 10
0
        public ActionResult Addresses()
        {
            if (!_workContext.CurrentCustomer.IsRegistered())
            {
                return(new HttpUnauthorizedResult());
            }

            var customer = _workContext.CurrentCustomer;

            var model     = new CustomerAddressListModel();
            var addresses = customer.Addresses
                            .ToList();

            foreach (var address in addresses)
            {
                var addressModel = new AddressModel();
                PrepareModel(
                    model: addressModel,
                    address: address);
                model.Addresses.Add(addressModel);
            }
            return(View(model));
        }
Exemplo n.º 11
0
        public virtual async Task <CustomerAddressListModel> PrepareAddressList(Customer customer)
        {
            var model     = new CustomerAddressListModel();
            var addresses = new List <Address>();

            foreach (var item in customer.Addresses)
            {
                if (string.IsNullOrEmpty(item.CountryId))
                {
                    addresses.Add(item);
                    continue;
                }
                var country = await _countryService.GetCountryById(item.CountryId);

                if (country != null || _storeMappingService.Authorize(country))
                {
                    addresses.Add(item);
                    continue;
                }
            }

            foreach (var address in addresses)
            {
                var countries = await _countryService.GetAllCountries(_workContext.WorkingLanguage.Id);

                var addressModel = new AddressModel();
                await _addressViewModelService.PrepareModel(model : addressModel,
                                                            address : address,
                                                            excludeProperties : false,
                                                            loadCountries : () => countries);

                model.Addresses.Add(addressModel);
            }

            return(model);
        }