public virtual ActionResult DestinationAddPopup(int discountId)
        {
            if (!_permissionService.Authorize(StandardPermissionProvider.ManageDiscounts))
            {
                return(AccessDeniedView());
            }

            var model = new DiscountModel.AddDestinationToDiscountModel();

            return(View(model));
        }
        public virtual ActionResult DestinationAddPopup(string btnId, string formId, DiscountModel.AddDestinationToDiscountModel model)
        {
            if (!_permissionService.Authorize(StandardPermissionProvider.ManageDiscounts))
            {
                return(AccessDeniedView());
            }

            var discount = _discountService.GetDiscountById(model.DiscountId);

            if (discount == null)
            {
                throw new Exception("No discount found with the specified id");
            }

            if (model.SelectedDestinationIds != null)
            {
                foreach (int id in model.SelectedDestinationIds)
                {
                    var destination = _destinationService.GetDestinationById(id);
                    if (destination != null)
                    {
                        if (destination.AppliedDiscounts.Count(d => d.Id == discount.Id) == 0)
                        {
                            destination.AppliedDiscounts.Add(discount);
                        }

                        _destinationService.UpdateDestination(destination);
                    }
                }
            }

            ViewBag.RefreshPage = true;
            ViewBag.btnId       = btnId;
            ViewBag.formId      = formId;
            return(View(model));
        }
        public virtual ActionResult DestinationAddPopupList(DataSourceRequest command, DiscountModel.AddDestinationToDiscountModel model)
        {
            if (!_permissionService.Authorize(StandardPermissionProvider.ManageDiscounts))
            {
                return(AccessDeniedKendoGridJson());
            }

            var destinations = _destinationService.GetAllDestinations(model.SearchDestinationName,
                                                                      0, command.Page - 1, command.PageSize, true);
            var gridModel = new DataSourceResult
            {
                Data  = destinations.Select(x => x.ToModel()),
                Total = destinations.TotalCount
            };

            return(Json(gridModel));
        }