2017-03-21 4 views
0

관련 기사 목록을 가져 오는 Umbraco v6.2.4의 부분보기를 사용하고 있습니다. 아래 스크립트는 완벽하게 작동하며 "Refactored.Umbraco.MVCExtensions"를 사용하여 기사의 조회수를 추출합니다. 지금까지 그렇게 좋았지 만 가장 인기있는 기사, 즉 조회수를 기준으로 기사 목록을 정렬/정렬하고 싶습니다. 그러나 뷰 수는 Umbraco 모델의 일부가 아니므로이를 기반으로 목록을 정렬/정렬하는 방법이나이 작업을 수행하는 다른 방법이 있는지 모르겠습니다.Umbraco 면도기 Orderby 맞춤 속성

@inherits Umbraco.Web.Mvc.UmbracoTemplatePage 

@using Refactored.UmbracoViewCounter @{

var articles = Model.Content.AncestorOrSelf(4).Children.Where(x => x.IsVisible()).OrderBy("articleCategory, articleDate desc"); 

int pagerank = 1; 
string elementId; 

<div> 
    <p class="h3">Most Popular</p> 

    @foreach (var item in articles.Take(6)) 
    { 
     elementId = "content_" + pagerank.ToString(); 
     <div class="items @elementId"> 
      <span class="pagerank">@pagerank</span> 
      <a href="@item.Url"> 
       <p>@(item.GetPropertyValue<string>("title"))</p>     
      </a> 
      <span class="views-counter"> @ViewCount.GetViewCount(item.Id, category: "articles", increment: false)</span> 
     </div> 
     pagerank = pagerank + 1; 
    } 

</div> 

은}

+0

조회수를 어떻게 저장했는지 알려줄 수 있습니까? –

+0

뷰 카운트는 "dbo.refViewCount"라는 테이블의 Umbraco 데이터베이스에 저장됩니다. 이 테이블은 id, nodeId, count, lastViewed 및 category를 포함합니다. – user3429664

답변

0

당신은 아래처럼 뭔가를 다음 종류의 두 목록과 결합 Linq를 사용할 수 있습니다, 나는, 당신은 볼 카운트 테이블 petapoco를 사용하는 가정 맞춤 데이터 표가 없으므로 코드를 테스트 할 수 없지만 여기서 올바른 방향으로 이동할 수 있다고 생각합니다.

var db = ApplicationContext.DatabaseContext.Database; 
var sql = new Sql() 
    .Select("*") 
    .From<RefViewCount>(new SqlServerSyntaxProvider()); 

var refViewCountList = db.Query<RefViewCount>(sql); 

var articles = Model.Content.AncestorOrSelf(4).Children.Where(x => x.IsVisible()).Select(r => new {Item = r, ViewCount = refViewCountList.Where(v => v.nodeId == r.Id).Select(v => v.count).SingleOrDefault()}).OrderBy(r => r.ViewCount).ToList(); 
+0

확인해 보았습니다. 시도했지만 다음과 같은 오류가 나타납니다. 형식 또는 네임 스페이스 이름 'RefViewCount'을 찾을 수 없습니다. 사용 지시문이나 어셈블리 참조가 없습니까? – user3429664

+0

ViewCount 용 Petapoco 또는 엔터티 프레임 워크를 사용하고 있습니까? 표? 난 그냥 당신이 RefViewCount라는 petapoco 모델이 있다고 가정하지만 그것은 ViewCount 테이블의 실제 클래스 이름이어야합니다 –