Ejemplo n.º 1
0
        /// <summary>
        /// Initializes a new instance of the <see cref="FlashModel"/> class.
        /// </summary>
        /// <param name="item">The item.</param>
        public FlashModel(DynamicContentItem item)
        {
            foreach (var prop in item.PropertyValues)
            {
                if (String.Equals(prop.Name, "Height", StringComparison.InvariantCultureIgnoreCase))
                {
                    Height = prop.IntegerValue;
                }

                if (String.Equals(prop.Name, "Width", StringComparison.InvariantCultureIgnoreCase))
                {
                    Width = prop.IntegerValue;
                }

                if (String.Equals(prop.Name, "ClassId", StringComparison.InvariantCultureIgnoreCase))
                {
                    ClassId = prop.LongTextValue;
                }

                if (String.Equals(prop.Name, "Src", StringComparison.InvariantCultureIgnoreCase))
                {
                    Src = prop.LongTextValue;
                }
            }
        }
Ejemplo n.º 2
0
        public void EvaluateItemsAsync_Evaluate()
        {
            //Arrange
            var expected = new List<DynamicContentItem>();
            var evalContext = new DynamicContentEvaluationContext() { GeoCity = "NY" };
            var dynamicContentItem = new DynamicContentItem()
            {
                Id = Guid.NewGuid().ToString()
            };
            expected.Add(dynamicContentItem);
            var expectedArray = expected.ToArray();

            var groups = new List<DynamicContentPublication>
            {
                new DynamicContentPublication
                {
                    DynamicExpression = JsonConvert.DeserializeObject<DynamicContentConditionTree>(GetConditionJson(), new ConditionJsonConverter(), new RewardJsonConverter()),
                    IsActive = true,
                    ContentItems = new ObservableCollection<DynamicContentItem> { dynamicContentItem },
                }
            };
            _dynamicContentSearchServiceMock.Setup(dcs => dcs.SearchContentPublicationsAsync(It.IsAny<DynamicContentPublicationSearchCriteria>()))
                .ReturnsAsync(new Core.Model.DynamicContent.Search.DynamicContentPublicationSearchResult { Results = groups.ToArray() });
            _dynamicContentServiceMock.Setup(dcs => dcs.GetContentItemsByIdsAsync(new[] { dynamicContentItem.Id }))
                .ReturnsAsync(expectedArray);

            var evaluator = new DefaultDynamicContentEvaluator(_dynamicContentSearchServiceMock.Object, _dynamicContentServiceMock.Object, _loggerMock.Object);

            //Act
            var results = evaluator.EvaluateItemsAsync(evalContext).GetAwaiter().GetResult();

            //Assert
            Assert.Equal(expectedArray, results);
        }
Ejemplo n.º 3
0
        public static TestContentItemsBuilder BuildsContentItems()
        {
            var contentItem1 = new DynamicContentItem()
            {
                Name           = "default_contentItem_1",
                Description    = "description_1",
                IsMultilingual = true
            };

            var contentItem2 = new DynamicContentItem()
            {
                Name           = "default_contentItem_2",
                Description    = "description_2",
                IsMultilingual = false
            };

            var contentItem3 = new DynamicContentItem()
            {
                Name           = "default_contentItem_2",
                Description    = "description_2",
                IsMultilingual = false
            };

            return(new TestContentItemsBuilder(new List <DynamicContentItem>()
            {
                contentItem1, contentItem2, contentItem3
            }));
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Initializes a new instance of the <see cref="CategoryUrlModel"/> class.
        /// </summary>
        /// <param name="item">The item.</param>
        public CategoryUrlModel(DynamicContentItem item)
        {
            foreach (var prop in item.PropertyValues)
            {
                if (String.Equals(prop.Name, "CategoryCode", StringComparison.InvariantCultureIgnoreCase))
                {
                    CategoryCode = prop.LongTextValue;
                }

                if (String.Equals(prop.Name, "Title", StringComparison.InvariantCultureIgnoreCase))
                {
                    Title = prop.LongTextValue;
                }

                if (String.Equals(prop.Name, "SortField", StringComparison.InvariantCultureIgnoreCase))
                {
                    SortField = prop.ShortTextValue;
                }

                if (String.Equals(prop.Name, "ItemCount", StringComparison.InvariantCultureIgnoreCase))
                {
                    ItemCount = prop.IntegerValue;
                }

                if (String.Equals(prop.Name, "NewItems", StringComparison.InvariantCultureIgnoreCase))
                {
                    NewItemsOnly = prop.BooleanValue;
                }
            }
        }
Ejemplo n.º 5
0
 /// <summary>
 /// Initializes a new instance of the <see cref="RawHtmlModel"/> class.
 /// </summary>
 /// <param name="item">The item.</param>
 public RawHtmlModel(DynamicContentItem item)
 {
     foreach (var prop in item.PropertyValues.Where(prop => String.Equals(prop.Name, "RawHtml", StringComparison.InvariantCultureIgnoreCase)))
     {
         Html = prop.LongTextValue;
         break;
     }
 }
Ejemplo n.º 6
0
 public DynamicContentItemPropertiesStepViewModel(
     DynamicContentItem item,
     CreateDynamicContentItemViewModel parentVM,
     IDynamicContentEntityFactory entityFactory,
     IViewModelsFactory <IPropertyEditViewModel> propertyEditVmFactory)
     : base(item, parentVM, entityFactory, propertyEditVmFactory)
 {
 }
Ejemplo n.º 7
0
 /// <summary>
 /// Initializes a new instance of the <see cref="ProductWithImageAndPriceModel"/> class.
 /// </summary>
 /// <param name="item">The item.</param>
 public ProductWithImageAndPriceModel(DynamicContentItem item)
 {
     foreach (var prop in item.PropertyValues)
     {
         if (String.Equals(prop.Name, "ProductCode", StringComparison.InvariantCultureIgnoreCase))
         {
             ProductCode = prop.LongTextValue;
         }
     }
 }
Ejemplo n.º 8
0
 /// <summary>
 /// Initializes a new instance of the <see cref="ImageNonClickableModel"/> class.
 /// </summary>
 /// <param name="item">The item.</param>
 public ImageNonClickableModel(DynamicContentItem item)
 {
     foreach (var prop in item.PropertyValues)
     {
         if (String.Equals(prop.Name, "ImageFilePath", StringComparison.InvariantCultureIgnoreCase))
         {
             ImageUrl = prop.LongTextValue;
         }
     }
 }
        public static DynamicContentItem ToWebModel(this MarketingModule.Client.Model.DynamicContentItem serviceModel)
        {
            var webModel = new DynamicContentItem();

            webModel.InjectFrom <NullableAndEnumValueInjecter>(serviceModel);

            if (serviceModel.DynamicProperties != null)
            {
                webModel.DynamicProperties = serviceModel.DynamicProperties.Select(dp => dp.ToWebModel()).ToList();
            }

            return(webModel);
        }
        public virtual DynamicContentItem ToDynamicContentItem(marketingDto.DynamicContentItem contentItemDto)
        {
            var result = new DynamicContentItem();

            result.InjectFrom <NullableAndEnumValueInjecter>(contentItemDto);

            if (contentItemDto.DynamicProperties != null)
            {
                result.DynamicProperties = contentItemDto.DynamicProperties.Select(ToDynamicProperty).ToList();
            }

            return(result);
        }
Ejemplo n.º 11
0
 /// <summary>
 /// Initializes a new instance of the <see cref="RawHtmlModel"/> class.
 /// </summary>
 /// <param name="item">The item.</param>
 /// <param name="context"></param>
 public RazorHtmlModel(DynamicContentItem item, ViewContext context) : base(item)
 {
     if (string.IsNullOrWhiteSpace(Html))
     {
         foreach (
             var prop in
             item.PropertyValues.Where(
                 prop => String.Equals(prop.Name, "RazorHtml", StringComparison.InvariantCultureIgnoreCase)))
         {
             Html = prop.LongTextValue;
             break;
         }
     }
     Html = Render(Html, context);
 }
        public async Task EvaluateItemsAsync(DynamicContentEvaluationContext context, DynamicContentConditionTree expression, bool expectedResult)
        {
            // Arrange
            var dynamicContentItem = new DynamicContentItem {
                Id = Guid.NewGuid().ToString()
            };
            var dynamicContentItems = new DynamicContentItem[] { dynamicContentItem };

            var evaluator = GetEvaluator(dynamicContentItem, dynamicContentItems, expression);

            // Act
            var results = await evaluator.EvaluateItemsAsync(context);

            // Assert
            Assert.Equal(expectedResult, dynamicContentItems.Equals(results));
        }
Ejemplo n.º 13
0
        public CreateDynamicContentItemViewModel(
            IViewModelsFactory <IPropertyEditViewModel> propertyEditVmFactory,
            IViewModelsFactory <IDynamicContentItemOverviewStepViewModel> overviewVmFactory,
            IViewModelsFactory <IDynamicContentItemPropertiesStepViewModel> propertiesVmFactory,
            IDynamicContentEntityFactory entityFactory, DynamicContentItem item)
        {
            _parentVM              = this;
            _entityFactory         = entityFactory;
            _propertyEditVmFactory = propertyEditVmFactory;

            var itemParameter           = new KeyValuePair <string, object>("item", item);
            var parentVMParameter       = new KeyValuePair <string, object>("parentVM", this);
            var entityFactoryParameter  = new KeyValuePair <string, object>("entityFactory", _entityFactory);
            var propertyEditVMParameter = new KeyValuePair <string, object>("propertyEditVmFactory", propertyEditVmFactory);

            RegisterStep(overviewVmFactory.GetViewModelInstance(itemParameter, parentVMParameter, entityFactoryParameter));
            RegisterStep(propertiesVmFactory.GetViewModelInstance(itemParameter, parentVMParameter, entityFactoryParameter, propertyEditVMParameter));
        }
Ejemplo n.º 14
0
        public virtual DynamicContentItem ToDynamicContentItem(marketingDto.DynamicContentItem contentItemDto)
        {
            var result = new DynamicContentItem();

            result.ContentType = contentItemDto.ContentType;
            result.Description = contentItemDto.Description;
            result.FolderId    = contentItemDto.FolderId;
            result.Id          = contentItemDto.Id;
            result.Name        = contentItemDto.Name;
            result.Outline     = contentItemDto.Outline;
            result.Path        = contentItemDto.Path;

            if (contentItemDto.DynamicProperties != null)
            {
                result.DynamicProperties = contentItemDto.DynamicProperties.Select(ToDynamicProperty).ToList();
            }

            return(result);
        }
Ejemplo n.º 15
0
        public static DynamicContentItem ToDynamicContentItem(this marketingDto.DynamicContentItem contentItemDto)
        {
            var result = new DynamicContentItem
            {
                ContentType = contentItemDto.ContentType,
                Description = contentItemDto.Description,
                FolderId    = contentItemDto.FolderId,
                Id          = contentItemDto.Id,
                Name        = contentItemDto.Name,
                Outline     = contentItemDto.Outline,
                Path        = contentItemDto.Path
            };

            if (contentItemDto.DynamicProperties != null)
            {
                result.DynamicProperties = contentItemDto.DynamicProperties.Select(ToDynamicProperty).ToList();
            }

            return(result);
        }
Ejemplo n.º 16
0
        protected CreateDynamicContentItemViewModel(
            DynamicContentItem item,
            CreateDynamicContentItemViewModel _parentViewModel,
            IDynamicContentEntityFactory entityFactory,
            IViewModelsFactory <IPropertyEditViewModel> propertyEditVmFactory)
        {
            _parentVM = _parentViewModel;

            InnerItem = item;
            InnerItem.PropertyChanged += InnerItem_PropertyChanged;
            _propertyEditVmFactory     = propertyEditVmFactory;


            if (this is IDynamicContentItemPropertiesStepViewModel)
            {
                _entityFactory             = entityFactory;
                PropertyValueEditCommand   = new DelegateCommand <DynamicContentItemProperty>(RaisePropertyValueEditInteractionRequest, x => x != null);
                PropertyValueDeleteCommand = new DelegateCommand <DynamicContentItemProperty>(RaisePropertyValueDeleteInteractionRequest, x => x != null);
                CommonConfirmRequest       = new InteractionRequest <Confirmation>();
            }
        }
        private IMarketingDynamicContentEvaluator GetEvaluator(DynamicContentItem item, DynamicContentItem[] items, DynamicContentConditionTree expression)
        {
            var groups = new List <DynamicContentPublication>
            {
                new DynamicContentPublication
                {
                    DynamicExpression = expression,
                    IsActive          = true,
                    ContentItems      = new ObservableCollection <DynamicContentItem> {
                        item
                    },
                }
            };

            _dynamicContentSearchServiceMock.Setup(dcs => dcs.SearchContentPublicationsAsync(It.IsAny <DynamicContentPublicationSearchCriteria>()))
            .ReturnsAsync(new Core.Model.DynamicContent.Search.DynamicContentPublicationSearchResult {
                Results = groups.ToArray()
            });
            _dynamicContentServiceMock.Setup(dcs => dcs.GetContentItemsByIdsAsync(new[] { item.Id }))
            .ReturnsAsync(items);

            return(new DefaultDynamicContentEvaluator(_dynamicContentSearchServiceMock.Object, _dynamicContentServiceMock.Object, _loggerMock.Object));
        }
        public void DeleteDynamicPropertyValuesInBackground(DynamicContentItem newEntry)
        {
            var dynamicProperties = (IHasDynamicProperties)newEntry;

            _dynamicPropertyService.DeleteDynamicPropertyValuesAsync(dynamicProperties).GetAwaiter().GetResult();
        }
Ejemplo n.º 19
0
 public DynamicContentItemOverviewStepViewModel(DynamicContentItem item, CreateDynamicContentItemViewModel parentVM, IDynamicContentEntityFactory entityFactory)
     : base(item, parentVM, entityFactory, null)
 {
 }