コード例 #1
0
        protected override SirenEntityBuilder AddCollectionActions(
            SirenEntityBuilder entity)
        {
            Claim c = Context.HttpContext.User.FindFirst(ClaimTypes.Role);

            if (c != null && (c.Value.Equals(Roles.Admin) || c.Value.Equals(Roles.Teacher)))
            {
                entity
                .WithAction(new ActionBuilder()
                            .WithName("add-student-to-class")
                            .WithTitle("Add Student To Class")
                            .WithMethod("POST")
                            .WithHref(Url.AbsoluteRouteUrl(
                                          Routes.ClassParticipantAdd,
                                          new { id = Identifier })
                                      )
                            .WithType("application/json")
                            .WithField(new FieldBuilder()
                                       .WithTitle("Number")
                                       .WithName("number")
                                       .WithType("number")));
            }

            return(entity);
        }
コード例 #2
0
        /*
         |-----------------------------------------------------------------------
         | Collection
         |-----------------------------------------------------------------------
         */

        protected override SirenEntityBuilder AddCollectionActions(SirenEntityBuilder entity)
        {
            Claim c = Context.HttpContext.User.FindFirst(ClaimTypes.Role);

            if (c != null && c.Value.Equals(Roles.Admin))
            {
                entity
                .WithAction(new ActionBuilder()
                            .WithName("add-course")
                            .WithTitle("Add Course")
                            .WithMethod("POST")
                            .WithHref(UrlTo(Routes.CourseCreate))
                            .WithType("application/json")
                            .WithField(new FieldBuilder()
                                       .WithTitle("Name")
                                       .WithName("name")
                                       .WithType("text"))
                            .WithField(new FieldBuilder()
                                       .WithTitle("Acronym")
                                       .WithName("acronym")
                                       .WithType("text"))
                            .WithField(new FieldBuilder()
                                       .WithTitle("Coordinator Number")
                                       .WithName("coordinatorId")
                                       .WithType("number")));
            }

            return(entity);
        }
コード例 #3
0
        protected override SirenEntityBuilder AddCollectionActions(SirenEntityBuilder entity)
        {
            Claim c = Context.HttpContext.User.FindFirst(ClaimTypes.Role);

            if (c != null && (c.Value.Equals(Roles.Admin) || c.Value.Equals(Roles.Teacher)))
            {
                entity
                .WithAction(new ActionBuilder()
                            .WithName("add-group-to-class")
                            .WithTitle("Add Group to Class")
                            .WithMethod("POST")
                            .WithHref(UrlTo(Routes.GroupCreate))
                            .WithType("application/json")
                            .WithField(new FieldBuilder()
                                       .WithName("ClassId")
                                       .WithType("hidden")
                                       .WithValue(Identifier.ToString()))
                            .WithField(new FieldBuilder()
                                       .WithTitle("Number")
                                       .WithName("number")
                                       .WithType("number"))
                            );
            }

            return(entity);
        }
コード例 #4
0
        /*
         |-----------------------------------------------------------------------
         | Collection
         |-----------------------------------------------------------------------
         */

        protected override SirenEntityBuilder AddCollectionActions(
            SirenEntityBuilder entity)
        {
            Claim c = Context.HttpContext.User.FindFirst(ClaimTypes.Role);

            if (c != null && c.Value.Equals(Roles.Admin))
            {
                entity
                .WithAction(new ActionBuilder()
                            .WithName("add-student")
                            .WithTitle("Add Student")
                            .WithMethod("POST")
                            .WithHref(UrlTo(Routes.StudentCreate))
                            .WithType("application/json")
                            .WithField(new FieldBuilder()
                                       .WithTitle("Number")
                                       .WithName("number")
                                       .WithType("number"))
                            .WithField(new FieldBuilder()
                                       .WithTitle("Name")
                                       .WithName("name")
                                       .WithType("text"))
                            .WithField(new FieldBuilder()
                                       .WithTitle("E-mail")
                                       .WithName("email")
                                       .WithType("email"))
                            .WithField(new FieldBuilder()
                                       .WithTitle("Password")
                                       .WithName("password")
                                       .WithType("password")));
            }

            return(entity);
        }
コード例 #5
0
        /*
         |-----------------------------------------------------------------------
         | Entity
         |-----------------------------------------------------------------------
         */

        protected override SirenEntityBuilder AddEntityActions(SirenEntityBuilder entity, Group item)
        {
            Claim c = Context.HttpContext.User.FindFirst(ClaimTypes.Role);

            if (c != null && (c.Value.Equals(Roles.Admin) || c.Value.Equals(Roles.Teacher)))
            {
                entity.WithAction(new ActionBuilder()
                                  .WithName("delete-group")
                                  .WithTitle("Delete Group")
                                  .WithMethod("Delete")
                                  .WithHref(
                                      Url.AbsoluteRouteUrl(
                                          Routes.GroupDelete,
                                          new { id = item.Id }
                                          )
                                      ));
            }

            return(entity);
        }
コード例 #6
0
        protected override SirenEntityBuilder AddEntityActions(SirenEntityBuilder entity, Teacher item)
        {
            Claim c = Context.HttpContext.User.FindFirst(ClaimTypes.Role);

            if (c != null && (c.Value.Equals(Roles.Admin) || c.Value.Equals(Roles.Teacher)))
            {
                entity
                .WithAction(
                    new ActionBuilder()
                    .WithName("remove-teacher-from-class")
                    .WithTitle("Remove Teacher from Class")
                    .WithMethod("DELETE")
                    .WithHref(Url.AbsoluteRouteUrl(
                                  Routes.ClassTeacherRemove,
                                  new { id = Identifier, teacherId = item.Number }
                                  ))
                    );
            }

            return(entity);
        }
コード例 #7
0
        /*
         |-----------------------------------------------------------------------
         | Collection
         |-----------------------------------------------------------------------
         */

        protected override SirenEntityBuilder AddCollectionActions(
            SirenEntityBuilder entity)
        {
            Claim c = Context.HttpContext.User.FindFirst(ClaimTypes.Role);

            if (c != null && (c.Value.Equals(Roles.Admin) || c.Value.Equals(Roles.Teacher)))
            {
                entity
                .WithAction(
                    new ActionBuilder()
                    .WithName("add-class")
                    .WithTitle("Add Class")
                    .WithMethod("POST")
                    .WithHref(UrlTo(Routes.ClassCreate))
                    .WithType("application/json")
                    .WithField(new FieldBuilder()
                               .WithTitle("Course")
                               .WithName("CourseId")
                               .WithType("number"))
                    .WithField(new FieldBuilder()
                               .WithTitle("Semester")
                               .WithName("SemesterId")
                               .WithType("number"))
                    .WithField(new FieldBuilder()
                               .WithTitle("Name")
                               .WithName("name")
                               .WithType("text"))
                    .WithField(new FieldBuilder()
                               .WithTitle("Group Size")
                               .WithName("maxGroupSize")
                               .WithType("number"))
                    .WithField(new FieldBuilder()
                               .WithTitle("Auto Enrollment")
                               .WithName("autoEnrollment")
                               .WithType("checkbox"))
                    );
            }

            return(entity);
        }
コード例 #8
0
        protected override SirenEntityBuilder AddEntityActions(
            SirenEntityBuilder entity,
            Student item)
        {
            Claim c = Context.HttpContext.User.FindFirst(ClaimTypes.Role);

            if (c != null && c.Value.Equals(Roles.Admin))
            {
                entity
                .WithAction(
                    new ActionBuilder()
                    .WithName("edit-student")
                    .WithTitle("Edit Student")
                    .WithMethod("PUT")
                    .WithHref(Url.ToStudent(Routes.StudentEdit, item.Number))
                    .WithType("application/json")
                    .WithField(
                        new FieldBuilder()
                        .WithTitle("Name")
                        .WithName("name")
                        .WithType("text")
                        .WithValue(item.Name))
                    .WithField(
                        new FieldBuilder()
                        .WithTitle("E-mail")
                        .WithName("email")
                        .WithType("email")
                        .WithValue(item.Email)))
                .WithAction(
                    new ActionBuilder()
                    .WithName("delete-student")
                    .WithTitle("Delete Student")
                    .WithMethod("DELETE")
                    .WithHref(Url.ToStudent(Routes.StudentDelete, item.Number))
                    );
            }
            this.AddCollectionActions(entity);

            return(entity);
        }
コード例 #9
0
        /*
         |-----------------------------------------------------------------------
         | Entity
         |-----------------------------------------------------------------------
         */

        protected override SirenEntityBuilder AddEntityActions(SirenEntityBuilder entity, Course item)
        {
            Claim c = Context.HttpContext.User.FindFirst(ClaimTypes.Role);

            if (c != null && c.Value.Equals(Roles.Admin))
            {
                entity
                .WithAction(
                    new ActionBuilder()
                    .WithName("edit-course")
                    .WithTitle("Edit Course")
                    .WithMethod("PUT")
                    .WithHref(Url.ToCourse(Routes.CourseEdit, item.Id))
                    .WithType("application/json")
                    .WithField(
                        new FieldBuilder()
                        .WithTitle("Name")
                        .WithName("name")
                        .WithType("text")
                        .WithValue(item.Name))
                    .WithField(
                        new FieldBuilder()
                        .WithTitle("Acronym")
                        .WithName("acronym")
                        .WithType("text")
                        .WithValue(item.Acronym))
                    .WithField(
                        new FieldBuilder()
                        .WithTitle("Coordinator Number")
                        .WithName("coordinatorId")
                        .WithType("number")
                        .WithValue(item.CoordinatorId.ToString()))
                    )
                .WithAction(
                    new ActionBuilder()
                    .WithName("add-class-to-course")
                    .WithTitle("Add Class to Course")
                    .WithMethod("POST")
                    .WithHref(UrlTo(Routes.ClassCreate))
                    .WithType("application/json")
                    .WithField(new FieldBuilder()
                               .WithName("CourseId")
                               .WithType("hidden")
                               .WithValue(item.Id.ToString()))
                    .WithField(new FieldBuilder()
                               .WithTitle("Semester")
                               .WithName("SemesterId")
                               .WithType("number"))
                    .WithField(new FieldBuilder()
                               .WithTitle("Name")
                               .WithName("name")
                               .WithType("text"))
                    .WithField(new FieldBuilder()
                               .WithTitle("Group Size")
                               .WithName("maxGroupSize")
                               .WithType("number"))
                    .WithField(new FieldBuilder()
                               .WithTitle("Auto Enrollment")
                               .WithName("autoEnrollment")
                               .WithType("checkbox")))
                .WithAction(
                    new ActionBuilder()
                    .WithName("delete-course")
                    .WithTitle("Delete Course")
                    .WithMethod("DELETE")
                    .WithHref(Url.ToCourse(Routes.CourseDelete, item.Id))
                    );
            }

            return(entity);
        }
コード例 #10
0
        protected override SirenEntityBuilder AddEntityActions(SirenEntityBuilder entity, Class item)
        {
            Claim c = Context.HttpContext.User.FindFirst(ClaimTypes.Role);

            if (c != null && c.Value.Equals(Roles.Admin))
            {
                entity
                .WithAction(
                    new ActionBuilder()
                    .WithName("edit-class")
                    .WithTitle("Edit Class")
                    .WithMethod("PUT")
                    .WithHref(Url.ToClass(Routes.ClassEdit, item.Id))
                    .WithType("application/json")
                    .WithField(
                        new FieldBuilder()
                        .WithTitle("Name")
                        .WithName("name")
                        .WithType("text")
                        .WithValue(item.Name))
                    .WithField(
                        new FieldBuilder()
                        .WithTitle("Max Group Size")
                        .WithName("maxGroupSize")
                        .WithType("number")
                        .WithValue(item.MaxGroupSize.ToString()))
                    .WithField(
                        new FieldBuilder()
                        .WithTitle("Auto Enrollment")
                        .WithName("autoEnrollment")
                        .WithType("checkbox")
                        .WithValue(item.AutoEnrollment.ToString())))
                .WithAction(
                    new ActionBuilder()
                    .WithName("delete-class")
                    .WithTitle("Delete Class")
                    .WithMethod("DELETE")
                    .WithHref(Url.ToClass(Routes.CourseDelete, item.Id)))
                .WithAction(
                    new ActionBuilder()
                    .WithName("add-teacher-to-class")
                    .WithTitle("Add Teacher to Class")
                    .WithMethod("POST")
                    .WithHref(
                        Url.AbsoluteRouteUrl(
                            Routes.ClassTeacherAdd, new { id = item.Id }
                            )
                        )
                    .WithType("application/json")
                    .WithField(new FieldBuilder()
                               .WithTitle("Number")
                               .WithName("number")
                               .WithType("text")));
                // .WithAction(new ActionBuilder()
                //         .WithName("remove-teacher-from-class")
                //         .WithTitle("Remove Teacher from Class")
                //         .WithMethod("DELETE")
                //         .WithHref(
                //             Url.AbsoluteRouteUrl(
                //                 Routes.ClassTeacherRemove, new {id = item.Id, teacherId = }
                //             )
                //         )
                //         .WithType("application/json")
                //         .WithField(new FieldBuilder()
                //             .WithTitle("Number")
                //             .WithName("number")
                //             .WithType("text"))
                // );
            }

            return(entity);
        }