コード例 #1
0
        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());
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        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);
        }