/// <summary>
        /// Prepare store pickup point list model
        /// </summary>
        /// <param name="searchModel">Store pickup point search model</param>
        /// <returns>Store pickup point list model</returns>
        public StorePickupPointListModel PrepareStorePickupPointListModel(StorePickupPointSearchModel searchModel)
        {
            var pickupPoints = _storePickupPointService.GetAllStorePickupPoints(pageIndex: searchModel.Page - 1,
                                                                                pageSize: searchModel.PageSize);
            var model = new StorePickupPointListModel().PrepareToGrid(searchModel, pickupPoints, () =>
            {
                return(pickupPoints.Select(point =>
                {
                    var store = _storeService.GetStoreById(point.StoreId);
                    return new StorePickupPointModel
                    {
                        Id = point.Id,
                        Name = point.Name,
                        OpeningHours = point.OpeningHours,
                        PickupFee = point.PickupFee,
                        DisplayOrder = point.DisplayOrder,
                        StoreName = store?.Name ?? (point.StoreId == 0
                                        ? _localizationService.GetResource(
                                                        "Admin.Configuration.Settings.StoreScope.AllStores")
                                        : string.Empty)
                    };
                }));
            });

            return(model);
        }
        public IActionResult List(DataSourceRequest command)
        {
            if (!_permissionService.Authorize(StandardPermissionProvider.ManageShippingSettings))
            {
                return(AccessDeniedKendoGridJson());
            }

            var pickupPoints = _storePickupPointService.GetAllStorePickupPoints(pageIndex: command.Page - 1, pageSize: command.PageSize);
            var model        = pickupPoints.Select(point =>
            {
                var store = _storeService.GetStoreById(point.StoreId);
                return(new StorePickupPointModel
                {
                    Id = point.Id,
                    Name = point.Name,
                    OpeningHours = point.OpeningHours,
                    PickupFee = point.PickupFee,
                    DisplayOrder = point.DisplayOrder,
                    StoreName = store?.Name ?? (point.StoreId == 0 ? _localizationService.GetResource("Admin.Configuration.Settings.StoreScope.AllStores") : string.Empty)
                });
            }).ToList();

            return(Json(new DataSourceResult
            {
                Data = model,
                Total = pickupPoints.TotalCount
            }));
        }
        /// <summary>
        /// Get pickup points for the address
        /// </summary>
        /// <param name="address">Address</param>
        /// <returns>Represents a response of getting pickup points</returns>
        public GetPickupPointsResponse GetPickupPoints(Address address)
        {
            var result = new GetPickupPointsResponse();

            foreach (var point in _storePickupPointService.GetAllStorePickupPoints(_storeContext.CurrentStore.Id))
            {
                var pointAddress = _addressService.GetAddressById(point.AddressId);
                if (pointAddress != null)
                {
                    result.PickupPoints.Add(new PickupPoint
                    {
                        Id                 = point.Id.ToString(),
                        Name               = point.Name,
                        Description        = point.Description,
                        Address            = pointAddress.Address1,
                        City               = pointAddress.City,
                        StateAbbreviation  = pointAddress.StateProvince != null ? pointAddress.StateProvince.Abbreviation : string.Empty,
                        CountryCode        = pointAddress.Country != null ? pointAddress.Country.TwoLetterIsoCode : string.Empty,
                        ZipPostalCode      = pointAddress.ZipPostalCode,
                        OpeningHours       = point.OpeningHours,
                        PickupFee          = point.PickupFee,
                        ProviderSystemName = ""// PluginDescriptor.SystemName
                    });
                }
            }

            if (result.PickupPoints.Count == 0)
            {
                result.AddError(_localizationService.GetResource("Plugins.Pickup.PickupInStore.NoPickupPoints"));
            }

            return(result);
        }
Exemple #4
0
        public ActionResult List(DataSourceRequest command)
        {
            if (!_permissionService.Authorize(StandardPermissionProvider.ManageShippingSettings))
            {
                return(Content("Access denied"));
            }

            var pickupPoints = _storePickupPointService.GetAllStorePickupPoints();
            var model        = pickupPoints.Select(x =>
            {
                var store = _storeService.GetStoreById(x.StoreId);
                return(new StorePickupPointModel
                {
                    Id = x.Id,
                    Name = x.Name,
                    OpeningHours = x.OpeningHours,
                    PickupFee = x.PickupFee,
                    StoreName = store != null ? store.Name
                        : x.StoreId == 0 ? _localizationService.GetResource("Admin.Configuration.Settings.StoreScope.AllStores") : string.Empty
                });
            }).ToList();

            return(Json(new DataSourceResult
            {
                Data = model,
                Total = pickupPoints.TotalCount
            }));
        }
Exemple #5
0
        /// <summary>
        /// Get pickup points for the address
        /// </summary>
        /// <param name="address">Address</param>
        /// <returns>Represents a response of getting pickup points</returns>
        public GetPickupPointsResponse GetPickupPoints(Address address)
        {
            var result = new GetPickupPointsResponse();

            foreach (var point in _storePickupPointService.GetAllStorePickupPoints(_storeContext.CurrentStore.Id))
            {
                var pointAddress = _addressService.GetAddressById(point.AddressId);
                if (pointAddress == null)
                {
                    continue;
                }

                result.PickupPoints.Add(new PickupPoint
                {
                    Id                 = point.Id.ToString(),
                    Name               = point.Name,
                    Description        = point.Description,
                    Address            = pointAddress.Address1,
                    City               = pointAddress.City,
                    County             = pointAddress.County,
                    StateAbbreviation  = _stateProvinceService.GetStateProvinceByAddress(pointAddress)?.Abbreviation ?? string.Empty,
                    CountryCode        = _countryService.GetCountryByAddress(pointAddress)?.TwoLetterIsoCode ?? string.Empty,
                    ZipPostalCode      = pointAddress.ZipPostalCode,
                    OpeningHours       = point.OpeningHours,
                    PickupFee          = point.PickupFee,
                    DisplayOrder       = point.DisplayOrder,
                    ProviderSystemName = PluginDescriptor.SystemName,
                    Latitude           = point.Latitude,
                    Longitude          = point.Longitude,
                    TransitDays        = point.TransitDays
                });
            }

            if (!result.PickupPoints.Any())
            {
                result.AddError(_localizationService.GetResource("Plugins.Pickup.PickupInStore.NoPickupPoints"));
            }

            return(result);
        }