/// <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; } } }
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); }
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 })); }
/// <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; } } }
/// <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; } }
public DynamicContentItemPropertiesStepViewModel( DynamicContentItem item, CreateDynamicContentItemViewModel parentVM, IDynamicContentEntityFactory entityFactory, IViewModelsFactory <IPropertyEditViewModel> propertyEditVmFactory) : base(item, parentVM, entityFactory, propertyEditVmFactory) { }
/// <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; } } }
/// <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); }
/// <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)); }
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)); }
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); }
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); }
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(); }
public DynamicContentItemOverviewStepViewModel(DynamicContentItem item, CreateDynamicContentItemViewModel parentVM, IDynamicContentEntityFactory entityFactory) : base(item, parentVM, entityFactory, null) { }