Ejemplo n.º 1
0
        public void Execute(OnUpdatedArgs <BatchRun> args)
        {
            var hubContext = GlobalHost.ConnectionManager.GetHubContext <BatchProcessingHub>();
            var batchRun   = args.Item;

            hubContext.Clients.All.updateRun(batchRun.ToSimpleJson(_batchRunUIService.GetCompletionStatus(batchRun)));
        }
Ejemplo n.º 2
0
        public void Execute(OnUpdatedArgs <Webpage> args)
        {
            Webpage current  = args.Item;
            Webpage original = args.Original;

            if (current == null || original == null)
            {
                return;
            }

            string action = "updated";

            if ((!original.Published && current.Published))
            {
                action = "published";
            }
            else if ((original.Published && !current.Published))
            {
                action = "unpublished";
            }

            string message = string.Format("<a href=\"/Admin/Webpage/Edit/{1}\">{0}</a> has been {2}{3}.",
                                           current.Name,
                                           current.Id, action, _documentModifiedUser.GetInfo());

            _notificationPublisher.PublishNotification(message, PublishType.Both, NotificationType.AdminOnly);
        }
Ejemplo n.º 3
0
        public void Execute(OnUpdatedArgs <ProductVariant> args)
        {
            // if warehouse stock is enabled, it's not relevant
            if (_ecommerceSettings.WarehouseStockEnabled)
            {
                return;
            }

            var productVariant = args.Original;

            if (productVariant == null)
            {
                return;
            }


            var oldValue = args.Original.StockRemaining;

            if (oldValue > 0)
            {
                return;
            }

            var newValue = args.Item.StockRemaining;

            if (newValue <= 0)
            {
                return;
            }

            if (newValue > oldValue)
            {
                RaiseBackInStockNotification(productVariant);
            }
        }
        public void Execute(OnUpdatedArgs <Layout> args)
        {
            var    webpage = args.Item;
            string message = string.Format("<a href=\"/Admin/Layout/Edit/{1}\">{0}</a> has been updated{2}.",
                                           webpage.Name,
                                           webpage.Id, _documentModifiedUser.GetInfo());

            _notificationPublisher.PublishNotification(message, PublishType.Both, NotificationType.AdminOnly);
        }
 public void Execute(OnUpdatedArgs <Order> args)
 {
     if (args.Item.IsCancelled && !args.Original.IsCancelled)
     {
         EventContext.Instance.Publish <IOnOrderCancelled, OrderCancelledArgs>(new OrderCancelledArgs
         {
             Order = args.Item
         });
     }
 }
        public void Execute(OnUpdatedArgs <Webpage> args)
        {
            if (!args.HasChanged(x => x.CustomFooterScripts))
            {
                return;
            }

            EventContext.Instance.Publish <IOnFooterScriptChanged, ScriptChangedEventArgs <Webpage> >(
                new ScriptChangedEventArgs <Webpage>(args.Item, args.Item.CustomFooterScripts,
                                                     args.Original?.CustomFooterScripts));
        }
Ejemplo n.º 7
0
        public void Execute(OnUpdatedArgs <BatchRunResult> args)
        {
            IHubContext    hubContext     = GlobalHost.ConnectionManager.GetHubContext <BatchProcessingHub>();
            BatchRunResult batchRunResult = args.Item;

            hubContext.Clients.All.updateResult(batchRunResult.Id);
            BatchRun batchRun = batchRunResult.BatchRun;

            hubContext.Clients.All.updateRun(batchRun.ToSimpleJson(_batchRunUIService.GetCompletionStatus(batchRun)));
            hubContext.Clients.All.updateJob(batchRunResult.BatchJob.Id);
        }
Ejemplo n.º 8
0
        public void Execute(OnUpdatedArgs <BatchRun> args)
        {
            BatchRun batchRun = args.Item;
            BatchRun previous = args.Original;

            if (batchRun.Status == BatchRunStatus.Complete && previous.Status != BatchRunStatus.Complete)
            {
                IHubContext hubContext = GlobalHost.ConnectionManager.GetHubContext <BatchProcessingHub>();
                hubContext.Clients.All.refreshBatchRunUI(batchRun.Id);
            }
        }
Ejemplo n.º 9
0
        public void Execute(OnUpdatedArgs <GiftCard> args)
        {
            GiftCard giftCard = args.Item;
            Order    order;

            if (ShouldCheck(giftCard, out order))
            {
                return;
            }
            ActivateIfRequired(giftCard, order);
        }
Ejemplo n.º 10
0
        public void Execute(OnUpdatedArgs <Webpage> args)
        {
            if (args.Original == null || args.Item == null)
            {
                return;
            }

            if (args.Original.Parent?.Id != args.Item.Parent?.Id)
            {
                _pageHierarchyAdminService.UpdateHierarchy(args.Item);
            }
        }
Ejemplo n.º 11
0
        public void Execute(OnUpdatedArgs <Document> args)
        {
            var document = args.Item;

            if (document != null && !document.IsDeleted)
            {
                var propertyInfos = document.GetType().GetVersionProperties();

                var jObject = new JObject();

                var anyChanges = false;
                foreach (var propertyInfo in propertyInfos)
                {
                    if (propertyInfo == null)
                    {
                        continue;
                    }

                    var oldValue = propertyInfo.GetValue(args.Original) ??
                                   (propertyInfo.PropertyType.IsValueType
                                        ? Activator.CreateInstance(propertyInfo.PropertyType)
                                        : null);
                    var newValue = propertyInfo.GetValue(args.Item);

                    if (oldValue != null)
                    {
                        if (!oldValue.Equals(newValue))
                        {
                            anyChanges = true;
                        }
                    }

                    if (oldValue == null && newValue != null)
                    {
                        anyChanges = true;
                    }

                    jObject.Add(propertyInfo.Name, new JRaw(JsonConvert.SerializeObject(oldValue)));
                }
                if (anyChanges)
                {
                    var s = args.Session;
                    var documentVersion = new DocumentVersion
                    {
                        Document = document,
                        Data     = JsonConvert.SerializeObject(jObject),
                        User     = GetUser(s),
                    };
                    document.Versions.Add(documentVersion);
                    s.Transact(session => session.Save(documentVersion));
                }
            }
        }
Ejemplo n.º 12
0
        public void Execute(OnUpdatedArgs <SiteEntity> args)
        {
            var siteEntity = args.Item;

            if (siteEntity == null)
            {
                return;
            }
            if (ShouldBeUpdated(siteEntity))
            {
                QueueTask(typeof(UpdateIndicesTask <>), siteEntity, LuceneOperation.Update);
            }
        }
Ejemplo n.º 13
0
        public void Execute(OnUpdatedArgs <ProductVariant> args)
        {
            if (!_ecommerceSettings.WarehouseStockEnabled)
            {
                return;
            }

            var current  = args.Item;
            var previous = args.Original;

            if (current.TrackingPolicy == TrackingPolicy.Track && previous.TrackingPolicy == TrackingPolicy.DontTrack)
            {
                _generateProductVariantWarehouseStock.Generate(current);
            }
        }
Ejemplo n.º 14
0
        public void Execute(OnUpdatedArgs <Order> args)
        {
            var order = args.Item;

            if (order == null)
            {
                return;
            }
            var giftCards = order.OrderLines.SelectMany(line => line.GiftCards).ToList();

            foreach (var giftCard in giftCards.Where(card => card.Status == GiftCardStatus.Unactivated))
            {
                ActivateIfRequired(giftCard, order);
            }
        }
Ejemplo n.º 15
0
        public void Execute(OnUpdatedArgs <MediaFile> args)
        {
            if (!args.Item.IsImage())
            {
                return;
            }

            if (!args.HasChanged(file => file.Title) && !args.HasChanged(file => file.Description))
            {
                return;
            }

            var prefix = string.Format("{0}{1}", MediaSettingExtensions.RenderImagePrefix, GetUrlWithoutExtension(args.Item.FileUrl));

            _cacheManager.Clear(prefix);
        }
Ejemplo n.º 16
0
        public void Execute(OnUpdatedArgs <Webpage> args)
        {
            Webpage webpage = args.Item;

            if (webpage == null)
            {
                return;
            }
            Webpage original   = args.Original;
            string  urlSegment = null;

            if (original != null)
            {
                urlSegment = original.UrlSegment;
            }
            SaveChangedUrl(urlSegment, webpage.UrlSegment, args.Session, webpage);
        }
Ejemplo n.º 17
0
        public void Execute(OnUpdatedArgs <MediaFile> args)
        {
            if (!args.Item.IsImage())
            {
                return;
            }

            if (!args.HasChanged(file => file.Title) && !args.HasChanged(file => file.Description))
            {
                return;
            }

            var tagPrefix = $"{MediaSettingExtensions.RenderTagPrefix}{GetUrlWithoutExtension(args.Item.FileUrl)}";
            var urlPrefix = $"{MediaSettingExtensions.RenderUrlPrefix}{GetUrlWithoutExtension(args.Item.FileUrl)}";

            _cacheManager.Clear(tagPrefix);
            _cacheManager.Clear(urlPrefix);
        }
Ejemplo n.º 18
0
        public void Execute(OnUpdatedArgs <Order> args)
        {
            if (!_ecommerceSettings.RewardPointsEnabled)
            {
                return;
            }

            var order = args.Item;

            if (order.User == null)
            {
                return;
            }

            if (order.OrderStatus != _rewardPointSettings.StatusToAward)
            {
                return;
            }

            var pointsToAward = PointsToAward(order);

            if (pointsToAward <= 0)
            {
                return;
            }

            var alreadyAwarded = _session.QueryOver <PointsAwarded>().Where(awarded => awarded.Order.Id == order.Id).Any();

            if (alreadyAwarded)
            {
                return;
            }

            _session.Transact(session => session.Save(new PointsAwarded
            {
                Points = pointsToAward,
                User   = order.User,
                Order  = order,
            }));
        }
Ejemplo n.º 19
0
        public void Execute(OnUpdatedArgs <ProductVariant> args)
        {
            var productVariant = args.Original;

            if (productVariant == null)
            {
                return;
            }


            var oldValue = args.Original.StockRemaining;

            if (oldValue > 0)
            {
                return;
            }

            var newValue = args.Item.StockRemaining;

            if (newValue <= 0)
            {
                return;
            }

            if (newValue > oldValue)
            {
                _session.Transact(sess =>
                {
                    var variant = sess.Get <ProductVariant>(productVariant.Id);
                    var backInStockProductVariant = new BackInStockProductVariant
                    {
                        ProductVariant = variant,
                        CreatedOn      = CurrentRequestData.Now,
                        UpdatedOn      = CurrentRequestData.Now,
                    };
                    sess.Save(backInStockProductVariant);
                });
            }
        }
Ejemplo n.º 20
0
        public void Execute(OnUpdatedArgs <WarehouseStock> args)
        {
            // if warehouse stock is not enabled, it's not relevant
            if (!_ecommerceSettings.WarehouseStockEnabled)
            {
                return;
            }
            // these first two checks are saying that either if there was stock, before,
            // or there still isn't stock, it's definitely not back in stock.
            var oldValue = args.Original.StockLevel;

            if (oldValue > 0)
            {
                return;
            }

            var newValue = args.Item.StockLevel;

            if (newValue <= 0)
            {
                return;
            }

            var stockItem = args.Item;
            var variant   = stockItem.ProductVariant;

            // We check the other warehouses, to see if it was out of stock everywhere, or just here
            var otherWarehousesWithStock = _session.QueryOver <WarehouseStock>()
                                           .Where(
                stock => stock.ProductVariant.Id == variant.Id && stock.StockLevel > 0 && stock.Id != stockItem.Id)
                                           .Cacheable()
                                           .Any();

            if (!otherWarehousesWithStock)
            {
                RaiseBackInStockNotification(variant);
            }
        }
        public void Execute(OnUpdatedArgs <Order> args)
        {
            if (!_ecommerceSettings.RewardPointsEnabled)
            {
                return;
            }

            Order order = args.Item;

            if (order.User == null)
            {
                return;
            }

            if (order.OrderStatus != _rewardPointSettings.StatusToCancel)
            {
                return;
            }

            RemoveAddedPoints(order);

            ReimburseSpentPoints(order);
        }
Ejemplo n.º 22
0
        public void Execute(OnUpdatedArgs <BatchJob> args)
        {
            var hubContext = GlobalHost.ConnectionManager.GetHubContext <BatchProcessingHub>();

            hubContext.Clients.All.updateJob(args.Item.Id);
        }
Ejemplo n.º 23
0
 public void Execute(OnUpdatedArgs <SystemEntity> args)
 {
     _universalSearchIndexManager.Update(args.Item);
 }
Ejemplo n.º 24
0
 public void Execute(OnUpdatedArgs <Webpage> args)
 {
     _addCommentingInfoForWebpage.AddInfo(args.Item);
 }
Ejemplo n.º 25
0
        public void Execute(OnUpdatedArgs <Widget> args)
        {
            var cacheKey = "Widget." + args.Item.Id;

            _cacheManager.Clear(cacheKey);
        }
 public void Execute(OnUpdatedArgs <ProductReview> args)
 {
     _updateProductVariantReviewData.Update(args.Item.ProductVariant);
 }
Ejemplo n.º 27
0
        public void Execute(OnUpdatedArgs <Comment> args)
        {
            var comment = args.Item;

            _sendCommentNotification.Send(comment);
        }