November Happy Hour will be moved to Thursday December 5th.
November Happy Hour will be moved to Thursday December 5th.
Why not just use the EPiServer CMS API to get the parent page? contentRepository.Get<BankPage>(x.ParentLink);
Frederik
Thanks for reply Frederik.
I have changed the function as follows
// Get all BranchPages in episerver
private EPiServer.Find.SearchResults<Filial> GetAllBranchPages()
{
var repository = EPiServer.ServiceLocation.ServiceLocator.Current.GetInstance<IContentRepository>();
var results = client.Search<Totalkredit.EpiServer.Models.Pages.BranchPage>()
.Select(x => new Filial
{
Coordinates = x.Coordinates,
StreetAddress = x.Street,
Latitude = x.Latitude,
Longitude = x.Longitude,
ZipCode = x.ZipCode,
AdvisorName = x.AdvisorName,
Email = x.Email,
Telefon = x.Telefon,
City = x.City,
AdvisorTitle = x.AdvisorTitle,
ParentBankPage = repository.Get<BankPage>(x.ParentLink),
BankName = repository.Get<BankPage>(x.ParentLink).BankName
})
.GetResult();
return results;
}
These to lines together in above function
ParentBankPage = repository.Get<BankPage>(x.ParentLink),
BankName = repository.Get<BankPage>(x.ParentLink).BankName
throws
{"Sequence contains more than one matching element"}
if i remove BankName = repository.Get<BankPage>(x.ParentLink).BankName
so it only contains ParentBankPage = repository.Get<BankPage>(x.ParentLink)
throws : An exception of type JsonSerializationException was thrown while deserializing object.
Filial class in above function is defined as follows
public class Filial
{
public Filial()
{
}
public string ZipCode { get; set; }
public string AdvisorTitle { get; set; }
public double Latitude { get; set; }
public double Longitude { get; set; }
public string StreetAddress { get; set; }
public GeoCoordinate Coordinates { get; set; }
public BankPage ParentBankPage { get; set; }
public string AdvisorName { get; set; }
public string BankName { get; set; }
public string Email { get; set; }
public string Telefon { get; set; }
public string City { get; set; }
}
I have a issue of finding parent page of a subpage.
My scenerio:
I have BankPage as parent, which contain branchPage (which is children).
I find all the branch pages by following
private EPiServer.Find.SearchResults<Filial> GetAllBranchPages()
{
var results = client.Search<Totalkredit.EpiServer.Models.Pages.BranchPage>()
.Select(x => new Filial
{
Coordinates = x.Coordinates,
StreetAddress = x.Street,
Latitude = x.Latitude,
Longitude = x.Longitude,
ZipCode = x.ZipCode,
AdvisorName = x.AdvisorName,
Email = x.Email,
Telefon = x.Telefon,
City = x.City,
AdvisorTitle = x.AdvisorTitle,
ParentBankPage = GetBankById(x.ParentLink.ID)
})
.GetResult();
return results;
}
Above code work fine except this line: ParentBankPage = GetBankById(x.ParentLink.ID)
i have a function which is suppose to return the parent Bank page
private EPiServer.Find.SearchResults<BankPage> GetBankById(int id)
{
EPiServer.Find.Api.Querying.Filters.IdsFilter x = new EPiServer.Find.Api.Querying.Filters.IdsFilter(new List<string>{id.Tostring()}.ToArray());
var results = client.Search<Totalkredit.EpiServer.Models.Pages.BankPage>()
.Filter(x)
.Select(y => new BankPage
{
BankName = y.BankName,
BackGroundcolor = y.BackGroundcolor,
Logo = y.Logo,
})
.GetResult();
return results;
}
it return 0 Hits.