Quantcast
Channel: Using Optimizely Platforms
Viewing all 8020 articles
Browse latest View live

Disappearing images as well as "failed to export file from provide epi.fx.blob"

$
0
0

Hello all,

recently we noticed that some images had disappeared from pages. We're not sure why, when, and how many of them and which exactly. For now it looks just randomly. However it came to our attention just right now.

I don't think it maybe some editor mistake or corrupted file, because our editors are re-checking newly created pages instantly, so they would notice if any image would not be accessible from the very first publish of the page. There were ideas to blame server, but still, some abstract blames towards server issues...

Log message:

2020-08-07 16:55:50,617 [107] ERROR EPiServer.Global: Unhandled exception in ASP.NET
System.IO.DirectoryNotFoundException: Could not find a part of the path 'C:\Applications\***\Web\App_Data\blobs\0d4afbe3d64145cabcb43835567677df\cc170be8ede143239e185941fb3b2703.jpg'.
   at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
   at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
   at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share)
   at System.Web.HttpResponse.TransmitFile(String filename, Int64 offset, Int64 length)
   at System.Web.HttpResponseWrapper.TransmitFile(String filename)
   at EPiServer.Web.BlobHttpHandler.ProcessRequestAsyncInternal(HttpContextWrapper context, AsyncCallback cb, Object extraData)
   at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
   at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step)
   at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)

Any ideas where to start to digging in much appreciated!

Also, when we try to copy/paste some pages, we're facing "failed to export file from provide epi.fx.blob" error message - but this one is not that common as disappearing images.

Screenshot - https://i.imgur.com/np0G9qe.png - any ideas what may be wrong? 

CMS version 11.

Thank you!


Export CMS pages along with LinkItemCollection items

$
0
0

This is regarding an issue in export and import tool in Episerver Admin mode.

I am using Episerver Import/Export data tools to export data from a website and import them to another website.

However, every property could be imported as expected. But not the below LinkItemCollection property,

[CultureSpecific]
[Display(
  Name = "Resource files",
  Description = "Resource files",
  GroupName = SystemTabNames.Content,
  Order = 85)]
public virtual LinkItemCollection ResourceFiles { get; set; }

When I export and import the page to the website, each and every property comes to the website. But LinkItemCollection property items are not correctly imported (Such as PDfs, PNGs etc.).

I have made a support request (#508267) and as per the development team, this is by design. So It would be better if the Episerver export tool exports LinkItemCollection items. So, it will be a lot easier to migrate the CMS pages from site A to B.

Not all shipping methods for markets pulling into Shipping Discounts

$
0
0

I have an odd issue. For shipping discounts I don't see all of the shipping methods I would expect for all the markets that they exist for. For instance, I have a shipping method with the name FedExExpressSaver and friendly name of Express. It exists with that same name under both English and English (Canada) in Commerce Manager, but it has different IDs in both of course as a result of living under two different translations.

  • FedExExpressSaver under English (Canada) has an ID of f5b4c2bf-133b-4194-928b-968647e5711d
  • FedExExpressSaver under English has an ID of 5ab42617-5482-4f4d-a94c-a52c03919a4b

In English this shipping method is assigned to the U.S. market, and in English (Canada) it is assigned to the Canada market. When I create/edit a shipping discount such as Buy Products for Free Shipping. I only see an option for Express (Markets: US). I expect to see a completely separate shipping method (since they have different IDs due to existing under different translations) with the display value Express (Markets: CA).

Why doesn't the shipping method that lives under English (Canada) show up on my shipping discounts? I believe the issue lies solely with the shipping method under English (Canada). Screenshots of this setup below along with what is displaying for shipping methods on discounts.

Episerver Fulltext Not Indexing Content

$
0
0

Hey all, it's been ages since I had to work with Episerver search rather than Find (Search & Navigation) so maybe someone will know the answer as the docs are spotty.

I have installed the Search and Search.CMS package (9.0.3) with Episerver CMS (11.18.0) and configured the correct domains and such and everything should be working. We have

  1. The index svc path returning the standard endpoint not point path as expect
  2. Indexing the site is generating indexes in the app_data folder

However there is nothing coming through in the CMS search area and also when I search in code for any IContent types I'm only getting the defaults

Anyone got any ideas?

Different catalog for specific users

$
0
0

Hi all, 

I am working on a site where some B2B customers need to see a specific assortment of products.

In the past we have used a makets approach for this, but this can be quite hard on the content managers because when
a customer only needs to see 5 products, the managers need to exclude the customers market on all the other products.

Is it possible to assign a specific catalog to a customer/organization/group? Maybe with some custom routing?

An exception of type ArgumentException was thrown while projecting field SortRating$$number.

$
0
0

Hi All,

Getting ArgumentException error in Episerver Find 13.2.7 for the SortRating field.

Stack Trace:

at EPiServer.Find.ProjectionHelper.ReplaceExpressionWithConstantFromField(Dictionary`2 args, Expression expression)
at EPiServer.Find.ProjectionHelper.<>c__DisplayClass21_0.<ReplaceMemberAssignmentsWithFieldValues>b__1(Expression expression)
at EPiServer.Find.Helpers.Linq.ExpressionReplacer`1.Visit(Expression expression)
at EPiServer.Find.Helpers.Linq.ExpressionVisitor.VisitBinary(BinaryExpression b)
at EPiServer.Find.Helpers.Linq.ExpressionVisitor.Visit(Expression exp)
at EPiServer.Find.Helpers.Linq.ExpressionReplacer`1.Visit(Expression expression)
at EPiServer.Find.Helpers.Linq.ExpressionVisitor.VisitMemberAssignment(MemberAssignment assignment)
at EPiServer.Find.Helpers.Linq.ExpressionVisitor.VisitBinding(MemberBinding binding)
at EPiServer.Find.Helpers.Linq.ExpressionVisitor.VisitBindingList(ReadOnlyCollection`1 original)
at EPiServer.Find.Helpers.Linq.ExpressionVisitor.VisitMemberInit(MemberInitExpression init)
at EPiServer.Find.Helpers.Linq.ExpressionVisitor.Visit(Expression exp)
at EPiServer.Find.Helpers.Linq.ExpressionReplacer`1.Visit(Expression expression)
at EPiServer.Find.ProjectionHelper.ReplaceMemberAssignmentsWithFieldValues(Expression selector, Dictionary`2 args)
at EPiServer.Find.ProjectionHelper.GetMappedSearchResultItem[TResult](SearchRequestBody requestBody, SearchHit`1 searchHit)
at EPiServer.Find.ProjectionHelper.GetMappedResult[TResult](SearchRequestBody requestBody, SearchResults`1 jsonResult)
at EPiServer.Find.SearchExtensions.GetProjectedResult[TResult](ISearch`1 search, SearchContext context)
at EPiServer.Find.SearchExtensions.GetResult[TResult](ISearch`1 search)

Anyone who have experienced similar problem?

How to open a URL property link in a new window?

$
0
0

I have this property:

public virtual Url Link { get; set; }

I want it to have an option in CMS to be able to open in new window,

How can I do it?

Please help

Recreate thumbnails for existing images

$
0
0

Hi,

Our client requested bigger thumbnails for images shown in the media manager. We have a solution where bigger thumbnails are created for newly uploaded images and shown as 96x96 instead of 48x48. However all the images previously uploaded still have the existing thumbnail of 48x48 generated earlier resulting in an ugly preview. Is there a way to fire trigger the creation of a new thumbnail for an existing image? 

Regards,


Convert Blocks

$
0
0

Please could we have a 'Convert Blocks' feature, that does exactly the same as 'Convert Pages' but for Blocks.

Currently, if you refactor a block type in code and rename it to something else, the existing blocks are effectively lost and will need to be recreated using the new block type.

This could probably be done directly in the DB but as there is already a feature that does this for pages it makes sense to extend this functionality to blocks.

EPiServer Community Api Comment Date

$
0
0

Hello, I'm importing comments from a wordpress blog and everything is working as expected except the comment's `Created` property which seems to get overriden to the current time (in our scheduled job). The following lines create the comment, the `epiComment` object has a `Created` DateTime in 2011 but the `addedComment` is returned with the current time:

```

var epiComment = new Epi.Comment(commentId, parent, authorRef, comment.Content, true,
ancestors, comment.Date, hasChildren, hasChildren);

if(!string.IsNullOrWhiteSpace(comment.AuthorEmail))
{
    var commentEx = new BlogCommentExtension(comment.AuthorEmail);

    var addedComment = _commentService.Add(epiComment, commentEx);
}
else
{
    _commentService.Add(epiComment);
}

```

How to transport image blobs in the Blog content via XML

$
0
0

In our system we have around 2500 EPiServer.Community.Blog entities and since this is discontinued, I am in the process of rewriting these Blogs as CMS Pages in a new solution. For data migration, I use a job to fetch all blog data and generate an XML; and then another job to read this XML and create new Blog CMS Pages in the new solution. 

Problem is the blog content (Xhtml added in TinyMCE) has a lot of image blobs which make the XML huge and unresponsive, even if I fetch small batches of 50 blogs. Can I compress these image blobs during the data migration? Has anyone else done something like this already?

Thanks in advance. 

Exclude "ContentLink Id" of variant or product type from search

$
0
0

Currently when user search with number and if that matches with "ContentLink Id" of catalog variant/product then that variant/product get returned as a search result. How can I avoid that "ContentLink Id" is being searched from my query?

Below is my sample query used to get products - 

query
.For(searchText)
.WithAndAsDefaultOperator()
.UsingSynonyms()

Note - Find version I am using : 13.2.6.0

Thanks in advance.

And filter with Or filter inside

$
0
0

I'm trying to filter my indexed items by categories (Or) and then by filetype, so "And match this filetype, or this filetype" etc

My Data structure look like this:

{"FileType$$string": "xlsx","Id$$number": 15153,"FileYear$$string": "2020","FileCreation$$date": "2020-07-03T14:53:50Z","ShortDescription$$string": "Short description, lorem ipsum dolor sit amet, consectetur adipiscing elit Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Lorem ipsum dolor sit amet, consectetur adipiscing elit","ContentLink$$string": "15153_35198","PageUrl$$string": "https://foo.com/mypage/thispage","___types": ["Foo.Features.Common.Indexer.IndexedDownload","System.Object"
    ],"Title$$string": "Foo- Self-Service.xlsx","Category$$string": ["456"
    ],"$type": "Foo.Features.Common.Indexer.IndexedDownload, Foo.Features"
}

I have my current query set out at this:

            var query = SearchClient.Instance.Search<IndexedDownload>();
            if (filterQuery.Categories != null && filterQuery.Categories.Any())
            {
                foreach (var item in filterQuery.Categories)
                {
                    query = query.OrFilter(f => f.Category.In(new List<string> { item }, true));
                }
            }
            if (filterQuery.FileTypes != null && filterQuery.FileTypes.Any())
            {
                query = query.Filter(f => f.FileType.Match(filterQuery.FileTypes.FirstOrDefault()));
            }
            if (!string.IsNullOrEmpty(filterQuery.Years))
            {
                query = query.Filter(f => f.FileYear.Match(filterQuery.Years));
            }

If I try and change the FileTypes filter too:

                foreach (var item in filterQuery.FileTypes)
                {
                    query = query.OrFilter(f => f.FileType.MatchCaseInsensitive(item));
                }

It brings back file types it shouldn't, I am guessing because everything is wrapped up in an overall OR filter its bringing everything back based on those matches, running through Fiddler confirms this I think:

{"from":0,"size":9,"query":{"filtered":{"query":{"constant_score":{"filter":{"or":[
                     {"terms":{"Category$$string.lowercase":["453"
                           ]
                        }
                     },
                     {"terms":{"Category$$string.lowercase":["458"
                           ]
                        }
                     },
                     {"terms":{"Category$$string.lowercase":["456"
                           ]
                        }
                     },
                     {"terms":{"Category$$string.lowercase":["454"
                           ]
                        }
                     },
                     {"term":{"FileType$$string.lowercase":"xlsx"
                        }
                     },
                     {"term":{"FileType$$string.lowercase":"pdf"
                        }
                     }
                  ]
               }
            }
         },"filter":{"term":{"___types":"Civica.Features.Common.Indexer.IndexedDownload"
            }
         }
      }
   },"facets":{"FileType":{"terms":{"field":"FileType$$string"
         }
      },"FileYear":{"terms":{"field":"FileYear$$string"
         }
      },"Category":{"terms":{"field":"Category$$string"
         }
      }
   }
}

So what would be the way to get results based on being in one of the categories and in one of the file types too

Fetch all Visitor Groups that can access a specific content

$
0
0

I could fetch all visitor groups and also visitor groups that a user belongs to. 

However I have a requirement, that when a user visits a page, I need to show who all (visitor groups) can see the page. Couldn't find anything online through which I can fetch this data.

Thanks.

Errors logged from Forms after latest update

$
0
0

After the latest update, I see these two errors appearing in the logs.

Failed to eager compile type EPiServer.Forms.Implementation.Elements.ChoiceElementBlock

Failed to eager compile type EPiServer.Forms.Implementation.Elements.SelectionElementBlock


Form crashes if created under page (For this page)

$
0
0

We are having problems in production with one of our forms after updating Episerver Forms to 4.29.1.

The form is unlike our other forms created under a page (For this page) and the block (Paragraph block) used on the form is also created under the page, not under the form.

See stacktrace:

System.Web.HttpException (0x80004005): 
  Error executing child request for handler 'System.Web.Mvc.HttpHandlerUtil+ServerExecuteHttpHandlerWrapper'. ---> System.Web.HttpException (0x80004005): Error executing child request for handler 'System.Web.Mvc.HttpHandlerUtil+ServerExecuteHttpHandlerAsyncWrapper'. ---> System.Web.HttpException (0x80004005): Error executing child request for handler 'System.Web.Mvc.HttpHandlerUtil+ServerExecuteHttpHandlerWrapper'. ---> System.Web.HttpUnhandledException (0x80004005): 
    Exception of type 'System.Web.HttpUnhandledException' was thrown. ---> 
      System.NullReferenceException: Object reference not set to an instance of an object. at EPiServer.Forms.Helpers.Internal.FormsExtensions.GetFormBlock(FormIdentity formIden) at EPiServer.Forms.Core.Internal.PlaceHolderService.GetFormElementsPlaceHolders(FormIdentity formIden) at EPiServer.Forms.Implementation.Elements.ParagraphTextElementBlock.HasPlaceHolder() at ASP.episerver_episerver_forms_views_elementblocks_paragraphtextelementblock_ascx.__Render__control1(HtmlTextWriter __w, Control parameterContainer) at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) at System.Web.Mvc.ViewPage.Render(HtmlTextWriter writer) at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) at System.Web.UI.Page.HandleError(Exception e) at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) at System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) at System.Web.UI.Page.ProcessRequest() at System.Web.UI.Page.ProcessRequest(HttpContext context) at System.Web.Mvc.ViewPage.RenderView(ViewContext viewContext) at System.Web.Mvc.ViewUserControl.RenderViewAndRestoreContentType(ViewPage containerPage, ViewContext viewContext) at System.Web.Mvc.ViewUserControl.RenderView(ViewContext viewContext) at EPiServer.Web.Mvc.ViewExtensions.Render[T](IView view, ViewEngineResult viewEngineResult, ViewContext context, TextWriter writer, T data) at EPiServer.Web.Mvc.Internal.DefaultMvcContentRenderer.HandleRenderTemplateWithViewEngine(HtmlHelper helper, IContentData contentData, TemplateModel templateModel) at EPiServer.Web.Mvc.Internal.DefaultMvcContentRenderer.Render(HtmlHelper helper, PartialRequest partialRequestHandler, IContentData contentData, TemplateModel templateModel) at EPiServer.Web.Mvc.Html.IContentDataExtensions.RenderContentData(HtmlHelper html, IContentData contentData, Boolean isContentInContentArea, TemplateModel templateModel, IContentRenderer contentRenderer, Func`1 partialRequest) at EPiServer.Web.Mvc.Html.IContentDataExtensions.RenderContentData(HtmlHelper html, IContentData contentData, Boolean isContentInContentArea, TemplateModel templateModel, IContentRenderer contentRenderer) at EPiServer.Web.Mvc.Html.IContentDataExtensions.RenderContentData(HtmlHelper html, IContentData contentData, Boolean isContentInContentArea, String templateTag) at EPiServer.Web.Mvc.Html.IContentDataExtensions.RenderContentData(HtmlHelper html, IContentData contentData, Boolean isContentInContentArea) at Apoteket.Core.EPi.Extensions.FormsHtmlHelperExtensions.RenderFormElements(HtmlHelper html, Int32 currentStepIndex, IEnumerable`1 elements, FormContainerBlock model) in D:\TeamCity\BuildAgent\work\faa4e25bfd84e34e\Src\Apoteket.Core\EPi\Extensions\FormsHtmlHelperExtensions.cs:line 50 at ASP.views_shared_elementblocks_formcontainerblock_ascx.__Render__control1(HtmlTextWriter __w, Control parameterContainer) at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) at System.Web.Mvc.ViewPage.Render(HtmlTextWriter writer) at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) at System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) at System.Web.UI.Page.ProcessRequest() at System.Web.UI.Page.ProcessRequest(HttpContext context) at System.Web.Mvc.HttpHandlerUtil.ServerExecuteHttpHandlerWrapper.<>c__DisplayClass5_0.<Wrap>b__0() at System.Web.Mvc.HttpHandlerUtil.ServerExecuteHttpHandlerWrapper.Wrap[TResult](Func`1 func) at System.Web.HttpServerUtility.ExecuteInternal(IHttpHandler handler, TextWriter writer, Boolean preserveForm, Boolean setPreviousPage, VirtualPath path, VirtualPath filePath, String physPath, Exception error, String queryStringOverride) at System.Web.HttpServerUtility.ExecuteInternal(IHttpHandler handler, TextWriter writer, Boolean preserveForm, Boolean setPreviousPage, VirtualPath path, VirtualPath filePath, String physPath, Exception error, String queryStringOverride) at System.Web.HttpServerUtility.Execute(IHttpHandler handler, TextWriter writer, Boolean preserveForm, Boolean setPreviousPage) at System.Web.HttpServerUtility.Execute(IHttpHandler handler, TextWriter writer, Boolean preserveForm) at System.Web.Mvc.ViewPage.RenderView(ViewContext viewContext) at System.Web.Mvc.ViewUserControl.RenderViewAndRestoreContentType(ViewPage containerPage, ViewContext viewContext) at System.Web.Mvc.ViewUserControl.RenderView(ViewContext viewContext) at System.Web.Mvc.ViewResultBase.ExecuteResult(ControllerContext context) at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList`1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult) at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList`1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult) at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList`1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult) at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList`1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult) at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList`1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult) at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultWithFilters(ControllerContext controllerContext, IList`1 filters, ActionResult actionResult) at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass3_1.<BeginInvokeAction>b__5(IAsyncResult asyncResult) at System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResult asyncResult) at System.Web.Mvc.Controller.<>c.<BeginExecuteCore>b__152_1(IAsyncResult asyncResult, ExecuteCoreState innerState) at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) at System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult) at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) at System.Web.Mvc.Controller.EndExecute(IAsyncResult asyncResult) at System.Web.Mvc.MvcHandler.<>c.<BeginProcessRequest>b__20_1(IAsyncResult asyncResult, ProcessRequestState innerState) at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) at System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) at System.Web.Mvc.HttpHandlerUtil.ServerExecuteHttpHandlerWrapper.<>c__DisplayClass5_0.<Wrap>b__0() at System.Web.Mvc.HttpHandlerUtil.ServerExecuteHttpHandlerWrapper.Wrap[TResult](Func`1 func) at System.Web.HttpServerUtility.ExecuteInternal(IHttpHandler handler, TextWriter writer, Boolean preserveForm, Boolean setPreviousPage, VirtualPath path, VirtualPath filePath, String physPath, Exception error, String queryStringOverride) at System.Web.HttpServerUtility.ExecuteInternal(IHttpHandler handler, TextWriter writer, Boolean preserveForm, Boolean setPreviousPage, VirtualPath path, VirtualPath filePath, String physPath, Exception error, String queryStringOverride) at System.Web.HttpServerUtility.Execute(IHttpHandler handler, TextWriter writer, Boolean preserveForm, Boolean setPreviousPage) at System.Web.HttpServerUtility.Execute(IHttpHandler handler, TextWriter writer, Boolean preserveForm) at System.Web.Mvc.Html.ChildActionExtensions.ActionHelper(HtmlHelper htmlHelper, String actionName, String controllerName, RouteValueDictionary routeValues, TextWriter textWriter) at EPiServer.Web.Mvc.PartialRequest.RenderAction(HtmlHelper helper, String action, String controller, Object routeValues) at EPiServer.Web.Mvc.Html.IContentDataExtensions.RenderContentData(HtmlHelper html, IContentData contentData, Boolean isContentInContentArea, TemplateModel templateModel, IContentRenderer contentRenderer, Func`1 partialRequest) at EPiServer.Web.Mvc.Html.ContentAreaRenderer.RenderContentAreaItem(HtmlHelper htmlHelper, ContentAreaItem contentAreaItem, String templateTag, String htmlTag, String cssClass) at EPiServer.Web.Mvc.Html.ContentAreaRenderer.RenderContentAreaItems(HtmlHelper htmlHelper, IEnumerable`1 contentAreaItems) at EPiServer.Web.Mvc.Html.ContentAreaRenderer.Render(HtmlHelper htmlHelper, ContentArea contentArea) at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) at System.Web.Mvc.ViewPage.Render(HtmlTextWriter writer) at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) at System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) at System.Web.UI.Page.ProcessRequest() at System.Web.UI.Page.ProcessRequest(HttpContext context) at System.Web.Mvc.HttpHandlerUtil.ServerExecuteHttpHandlerWrapper.<>c__DisplayClass5_0.<Wrap>b__0() at System.Web.Mvc.HttpHandlerUtil.ServerExecuteHttpHandlerWrapper.Wrap[TResult](Func`1 func) at System.Web.HttpServerUtility.ExecuteInternal(IHttpHandler handler, TextWriter writer, Boolean preserveForm, Boolean setPreviousPage, VirtualPath path, VirtualPath filePath, String physPath, Exception error, String queryStringOverride) at System.Web.HttpServerUtility.ExecuteInternal(IHttpHandler handler, TextWriter writer, Boolean preserveForm, Boolean setPreviousPage, VirtualPath path, VirtualPath filePath, String physPath, Exception error, String queryStringOverride) at System.Web.HttpServerUtility.Execute(IHttpHandler handler, TextWriter writer, Boolean preserveForm, Boolean setPreviousPage) at System.Web.HttpServerUtility.Execute(IHttpHandler handler, TextWriter writer, Boolean preserveForm) at System.Web.Mvc.ViewPage.RenderView(ViewContext viewContext) at System.Web.Mvc.ViewUserControl.RenderViewAndRestoreContentType(ViewPage containerPage, ViewContext viewContext) at System.Web.Mvc.ViewUserControl.RenderView(ViewContext viewContext) at System.Web.Mvc.Html.TemplateHelpers.ExecuteTemplate(HtmlHelper html, ViewDataDictionary viewData, String templateName, DataBoundControlMode mode, GetViewNamesDelegate getViewNames, GetDefaultActionsDelegate getDefaultActions) at System.Web.Mvc.Html.TemplateHelpers.TemplateHelper(HtmlHelper html, ModelMetadata metadata, String htmlFieldName, String templateName, DataBoundControlMode mode, Object additionalViewData, ExecuteTemplateDelegate executeTemplate) at System.Web.Mvc.Html.TemplateHelpers.TemplateHelper(HtmlHelper html, ModelMetadata metadata, String htmlFieldName, String templateName, DataBoundControlMode mode, Object additionalViewData) at System.Web.Mvc.Html.TemplateHelpers.TemplateFor[TContainer,TValue](HtmlHelper`1 html, Expression`1 expression, String templateName, String htmlFieldName, DataBoundControlMode mode, Object additionalViewData) at System.Web.Mvc.Html.DisplayExtensions.DisplayFor[TModel,TValue](HtmlHelper`1 html, Expression`1 expression, Object additionalViewData) at EPiServer.Web.Mvc.Html.PropertyRenderer.<>c__DisplayClass12_0`2.<GetHtmlForDefaultMode>b__0(StringWriter writer) at EPiServer.Web.Mvc.Html.PropertyRenderer.CreateMvcHtmlString(Action`1 action) at EPiServer.Web.Mvc.Html.PropertyRenderer.PropertyFor[TModel,TValue](HtmlHelper`1 html, String viewModelPropertyName, Object additionalViewData, Object editorSettings, Expression`1 expression, Func`2 displayForAction) at EPiServer.Web.Mvc.Html.PropertyExtensions.PropertyFor[TModel,TValue](HtmlHelper`1 html, Expression`1 expression, Object additionalViewData) at Apoteket.Core.EPi.Extensions.HtmlHelperExtensions.ContentAreaFor[TModel,TValue](HtmlHelper`1 htmlHelper, Expression`1 expression, Object additionalViewData) in D:\TeamCity\BuildAgent\work\faa4e25bfd84e34e\Src\Apoteket.Core\EPi\Extensions\HtmlHelperExtensions.cs:line 147

It comes from the following method:

    /// <summary>
    /// Find form container block which contains this element.
    /// <remarks>This function works because we have assumption that FormElement is direct child of FormContainer,
    /// FormElementBlock is stored inside LocalFolder of FormContainerBlock</remarks>
    /// </summary>
    /// <param name="element">The FormEchwslement.</param>
    public virtual FormContainerBlock FindOwnerForm()
    {
      IContent content1 = this.Content;
      if (content1 == null)
        return (FormContainerBlock) null;
      if (!(content1.ParentLink.GetContent((string) null) is ContentAssetFolder content2))
        return (FormContainerBlock) null;
      ILocalizable localizable = content1 as ILocalizable;
      return content2.ContentOwnerID.GetContent(localizable?.Language?.Name) as FormContainerBlock;
    }

Decrease product amount when promotion is added with larger amount then subtotal

$
0
0

Hi,

We ran into a problem.

We have a site where you can use your wallet value to buy some products. The Wallet value the customer wants to use do we call a Wallet Promotion.
The customer selects the Wallet amount (max amount of order subtotal ex vat or max of customer wallet amount) en after that we create a Promotion of type WalletPromoData (override from OrderPromotion). 

Now we have the following scenario:

  1. Add product to cart with 4 seats a E200,- each (order subtotal is E800,-)
  2. Use Wallet value for whole order, so also E800,- (promotion with couponcode is generated and visible)
  3. Decrease the seats to 2, so order subtotal will be E400,- while the Wallet Promotion still has a value of E800,-
  4. Now, the cart page run into the following error after calling OrderRepository.Service.Save(cart): "Invalid order group total calculation"
  5. So it looks like Episerver doesn't decrease the amount of the promotion to the max of the order subtotal

Does anyone else ran into the same problem or something like this?

Thanks in advance.

Grtz Sander

Add Favicon in CMS mode (Episerver 9)

Error??

$
0
0

I have installed EpiServer on "LocalHost" and set "/ScanWebUI/" as folder for UI. Now I get this error on hitting http://banghrahim/ScanWebUI/admin/setup.aspx -------------------------------------------------------------------------------- Could not find stored procedure 'dbo.aspnet_CheckSchemaVersion'. Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. Exception Details: System.Data.SqlClient.SqlException: Could not find stored procedure 'dbo.aspnet_CheckSchemaVersion'. -------------------------------------------------------------------------------- Please let me know how to get rid of this error. 

Governance Documents

$
0
0

Hi all,

I am preparing to create governance documents to outline change order processes, etc. for our Epi instance and wanted to see if anyone could recommend a good resource for a template or some sample governance documents? I recognize that every instance of EPI is customized, but I hate to "reinvent the wheel" if there are resources out there that I could use to get started.

The documents will be to provide oversight on our processes for our global teams.

Thanks in advance,

Matt

Viewing all 8020 articles
Browse latest View live