Episerver - update 339

Release summary

New features for Episerver Commerce and Episerver Product Recommendations. Bug fixes for Episerver CMS Core and Episerver Search & Navigation.

Released items Oct 27, 2020

Area ID Type Description Released
CMS-16988
  Calling convention must be VarArgs exception thrown for properties on generic classes

ContentModelILCompiler throws an exception if an interceptable property is declared on a generic class. For example: 

 

public class Content : BaseContent<int> { }
public abstract class BaseContent<TModel> : ContentData
{     public virtual bool Boolean \{ get; set; }
}

 

The thrown exception is an InvalidOperationException: "Calling convention must be VarArgs."

EPiServer.CMS.Core 11.20.1; (Or a related package);
Oct 27, 2020
CMS-14788
  Get URL to page with "Shortcut to another content item"

Get URL to referenced content by using Shortcut should points to the referenced content.

  

EPiServer.CMS.Core 11.20.1; (Or a related package);
Oct 27, 2020
CMS-15213
  Typo in the documentation of Episerver.Framework.Cache.ReadStrategy.Wait
Issue Description

Fixed typo in meta document of the enum Episerver.Framework.Cache.ReadStrategy.Wait

Documentation says:
/// <summary>Will wait for pending updates to finish</summary>
/// <remarks>
/// <para>Typically used for scenarios where there is likely that several calls are done concurrent for an item
/// that is costly to load. In that case only one will perform the actual load while others will wait.
/// When the loading is done the waiting threads will be singnalled.</para>
/// <para>This option adds a marker object to the cache to signal that data is being loaded, do not use the same
/// cache key with other API's that do not take <see cref="T:EPiServer.Framework.Cache.ReadStrategy" /> since they will return the marker object
/// if called for example during a costly database operation.</para>
/// </remarks>

There is a spelling error in the paragraph for the word "singnalled", should be "signalled", also the word "concurrent" should be "concurrently".

EPiServer.CMS.Core 11.20.1; (Or a related package);
Oct 26, 2020
COM-12053
  Remove Beta in some APIs

Removal of Beta stamp for these features.

  • For EPiReportController, the check for EPiBetaUsers role has been removed.
  • For IOrderSearchService, the Beta stamp has been removed.
EPiServer.Commerce 13.26.0; (Or a related package);
Oct 23, 2020
COM-12113
  Cart - CreateOrderForm - wrong calculate OrderFormId

For the multiple order forms in cart as below code, the CreateOrderForm() are returning same OrderFormId (-2)

var orderRepository = ServiceLocator.Current.GetInstance<IOrderRepository>();
            var orderGroupFactory = ServiceLocator.Current.GetInstance<IOrderGroupFactory>();
            var currentMarket = ServiceLocator.Current.GetInstance<ICurrentMarket>();
            ICart cart = orderRepository.LoadOrCreateCart<ICart>(CustomerContext.Current.CurrentContactId, "Default", currentMarket);
            if (cart != null)
            {
                orderRepository.Delete(cart.OrderLink);
            }
            cart = orderRepository.LoadOrCreateCart<ICart>(CustomerContext.Current.CurrentContactId, "Default", currentMarket);
            cart.Forms.Remove(cart.GetFirstForm()); // We always remove the form provided by default form in a new cart as we need to populate all order forms with a bunch of custom property values later on.
            cart.Forms.Add(orderGroupFactory.CreateOrderForm(cart)); // Expected orderformid is -2, which it is
            orderRepository.Save(cart);
            cart = orderRepository.LoadOrCreateCart<ICart>(CustomerContext.Current.CurrentContactId, "Default", currentMarket);
            cart.Forms.Add(orderGroupFactory.CreateOrderForm(cart)); //Expected orderformid is -3 which it is in 13.18.2, but in 13.24.0 this is assigned -2 which leaves us with two order forms with the same id
            cart.Forms.Add(orderGroupFactory.CreateOrderForm(cart)); // 13.18.2 assigns -4 and 13.24.0 assigns -3, here the incrementation seems to be working again

source: https://pastebin.com/3e48Lihr

EPiServer.Commerce 13.26.0; (Or a related package);
Oct 23, 2020
COM-12163
  Missing success message for Collect Report Data Job

Fixed "Missing success message for Collect Report Data Job"

Steps to reproduce:

  1. Go to CMS Admin view.
  2. Succesfully run the scheduled job "Collect Report Data".
  3. Once completed, look at the "History" tab (see attached image).

Expected: A message indicating a succesfully completed job.

Actual: Empty field.

EPiServer.Commerce 13.26.0; (Or a related package);
Oct 23, 2020

    Personalization_32.svgEpiserver Personalization 2020.40.0

    New feature

    • Change approvals and individual user permissions
      In Product Recommendations, when an editor makes changes to a merchandizing campaign, a reviewer can accept or reject the changes. See the Episerver User Guide: Approving campaign changes.

    More on releases

    Related topics

    Last updated: Oct 27, 2020