/// <summary> /// Maps <see cref="ProductVariantDetachedContentDisplay"/> to <see cref="IProductVariantDetachedContent"/>. /// </summary> /// <param name="display"> /// The display. /// </param> /// <param name="productVariantKey"> /// The product Variant Key. /// </param> /// <returns> /// The <see cref="IProductVariantDetachedContent"/>. /// </returns> public static IProductVariantDetachedContent ToProductVariantDetachedContent(this ProductVariantDetachedContentDisplay display, Guid productVariantKey) { var contentType = new DetachedContentType( display.DetachedContentType.EntityTypeField.TypeKey, display.DetachedContentType.UmbContentType.Key) { Key = display.DetachedContentType.Key, Name = display.DetachedContentType.Name, Description = display.DetachedContentType.Description }; // Assign the default template var templateId = 0; if (display.TemplateId == 0 && display.DetachedContentType.UmbContentType.DefaultTemplateId != 0) { templateId = display.DetachedContentType.UmbContentType.DefaultTemplateId; } var pvdc = new ProductVariantDetachedContent(productVariantKey, contentType, display.CultureName, new DetachedDataValuesCollection(display.DetachedDataValues)) { TemplateId = templateId, Slug = display.Slug, CanBeRendered = display.CanBeRendered }; if (!display.Key.Equals(Guid.Empty)) pvdc.Key = display.Key; return pvdc; }
/// <summary> /// Creates a <see cref="IDetachedContentType"/> without saving it to the database. /// </summary> /// <param name="entityTfKey"> /// The entity type field key. /// </param> /// <param name="contentTypeKey"> /// The content type key. /// </param> /// <param name="name"> /// The name. /// </param> /// <param name="raiseEvents"> /// Optional boolean indicating whether or not to raise events. /// </param> /// <returns> /// The <see cref="IDetachedContentType"/>. /// </returns> public IDetachedContentType CreateDetachedContentType( Guid entityTfKey, Guid contentTypeKey, string name, bool raiseEvents = true) { Mandate.ParameterCondition(!Guid.Empty.Equals(entityTfKey), "entityTfKey"); var dt = new DetachedContentType(entityTfKey, contentTypeKey.Equals(Guid.Empty) ? (Guid?)null : contentTypeKey) { Name = name }; if (raiseEvents) if (Creating.IsRaisedEventCancelled(new Events.NewEventArgs<IDetachedContentType>(dt), this)) { dt.WasCancelled = true; return dt; } return dt; }