public void InsertBannerWidgetZone(PromoBannerWidgetZone bannerWidgetZoneToInsert)
 {
     _bannerWidgetZoneRepository.Insert(bannerWidgetZoneToInsert);
     _eventPublisher.EntityInserted<PromoBannerWidgetZone>(bannerWidgetZoneToInsert);
 }
 public void DeleteBannerWidgetZone(PromoBannerWidgetZone bannerWidgetZoneToDelete)
 {
     _bannerWidgetZoneRepository.Delete(bannerWidgetZoneToDelete);
     _eventPublisher.EntityDeleted<PromoBannerWidgetZone>(bannerWidgetZoneToDelete);
 }
        public ActionResult BannerWidgetZoneAdd(int bannerId, string widgetZone)
        {
            if (bannerId == 0 || string.IsNullOrEmpty(widgetZone.Trim()))
            {
                ModelState.AddModelError(string.Empty, _localizationService.GetResource("Plugins.Widgets.QixolPromo.BannerWidgets.ValidationMsg.Add"));
                return Json(new DataSourceResult { Errors = ModelState.SerializeErrors() });
            }

            var existingWidgetZones = _promoBannerService.RetrieveWidgetZonesForBanner(bannerId);
            if (existingWidgetZones != null && existingWidgetZones.Count() > 0)
            {
                // It already exists - so just return...  To be reviewed.
                if(existingWidgetZones.Any(wz => string.Compare(wz.WidgetZoneSystemName, widgetZone, true) == 0))
                    return Json(new { Result = true }, JsonRequestBehavior.AllowGet);
            }

            var newBannerWidgetZone = new PromoBannerWidgetZone()
            {
                PromoBannerId = bannerId,
                WidgetZoneSystemName = widgetZone
            };

            _promoBannerService.InsertBannerWidgetZone(newBannerWidgetZone);
            RemoveWidgetZoneFromCache(newBannerWidgetZone.WidgetZoneSystemName);

            return Json(new { Result = true }, JsonRequestBehavior.AllowGet);
        }