public SirenEntity Collection(PagedList <T> items, ListQueryStringDto query) { var entity = new SirenEntityBuilder() .WithClass(Class) .WithClass("collection"); AddCollectionProperties(entity, items, query); foreach (var item in items) { var subEntity = SubEntity(item); var embeddedEntity = subEntity as EmbeddedRepresentationBuilder; if (embeddedEntity != null) { embeddedEntity.WithRel("item"); entity.WithSubEntity(embeddedEntity); } } AddCollectionActions(entity); AddNavigationLinks(entity, items.TotalPages, query); AddCollectionLinks(entity); return(entity.Build()); }
protected override SirenEntityBuilder AddEntitySubEntities(SirenEntityBuilder entity, Course item) { if (item.Coordinator != null) { } entity.WithSubEntity( (SubEntityBuilder) new EmbeddedRepresentationBuilder() .WithRel("coordinator") .WithClass("teacher") .WithProperty("number", item.Coordinator.Number) .WithProperty("name", item.Coordinator.Name) .WithProperty("email", item.Coordinator.Email) ); return(entity); }
protected override SirenEntityBuilder AddEntitySubEntities(SirenEntityBuilder entity, Class item) { if (item.Semester != null) { entity.WithSubEntity( (SubEntityBuilder) new EmbeddedRepresentationBuilder() .WithRel("semester") .WithClass("semester") .WithProperty("Id", item.Semester.Id) .WithProperty("Year", item.Semester.Year) .WithProperty("Term", item.Semester.Term) ); } return(entity); }
protected override SirenEntityBuilder AddEntitySubEntities(SirenEntityBuilder entity, Group item) { if (item.Students != null) { item.Students.ForEach(i => { entity.WithSubEntity( (SubEntityBuilder) new EmbeddedRepresentationBuilder() .WithRel("item") .WithClass("student") .WithProperty("number", i.Student.Number) .WithProperty("name", i.Student.Name) .WithProperty("email", i.Student.Email) ); }); } return(entity); }