public object Get(GetListing request) { var listing = new Listing(); using (IDbConnection db = DbFactory.Open()) { listing = db.Select<Listing>().Where(ar => (ar.Id == request.Id || request.Id == null)).First(); } // add categories var categoryService = this.ResolveService<CategoryServices>(); var categores = ((GetCategoriesResponse)categoryService.Get(new GetCategories())).Result; listing.Category = categores.First(ar => ar.Id == listing.CategoryId); //build page hierarchy var pageHierarchy = new List<PageHierarchy>(); int rank = 0; //if (request.CategoryId != null) { var level = categores.First(ar => ar.Id == listing.CategoryId); pageHierarchy.Add(new PageHierarchy(rank, new Link { DisplayName = level.Name, Type = "Breadcrumb", Url = (new GetListings { CategoryId = level.Id }).ToGetUrl() })); bool hasParent = level.ParentCategoryId.HasValue; while (hasParent) { rank++; level = categores.First(ar => ar.Id == level.ParentCategoryId); pageHierarchy.Add(new PageHierarchy(rank, new Link { DisplayName = level.Name, Type = "Breadcrumb", Url = (new GetListings { CategoryId = level.Id }).ToGetUrl() })); hasParent = level.ParentCategoryId.HasValue; } } if (request.Id != null) pageHierarchy.Add(new PageHierarchy(rank, new Link { DisplayName = listing.Title, Type = "Breadcrumb", Url = "" })); return new GetListingResponse { PageHierarchy = pageHierarchy.OrderByDescending(ar => ar.Rank).ToList(), Result = listing }; }
public Listing Get(int id) { var query = new GetListing(1); return(_database.Execute(query)); }