private static void CreateTestDataIn(Database db)
        {
            var createRole = new CreateRole
            {
                Name = "Admin",
                Permissions = new[] {"View Users", "Edit Users", "Deactivate Users"}
            };
            db.CreateRole(createRole);
            db.CreateUser(new CreateUser {FullName = "Dan Barua", UserName = "******", RoleId = createRole.Id.GetValueOrDefault()});
            db.CreateUser(new CreateUser {FullName = "Jonathon Channon", UserName = "******", RoleId = createRole.Id.GetValueOrDefault()});

            // let's generate some random data!
            var fixture = new Fixture {RepeatCount = 100};

            var roles = fixture.CreateMany<CreateRole>().ToList();
            var users = fixture.CreateMany<CreateUser>().ToList();
            foreach (var r in roles)
            {
                db.CreateRole(r);
            }

            var roleCount = roles.Count();
            foreach (var u in users)
            {
                u.RoleId = roles.Skip(new Random().Next(0, roleCount)).Take(1).First().Id.GetValueOrDefault();
                // select random id from roles
                db.CreateUser(u);
            }
        }
Beispiel #2
0
        public RolesModule(Database db)
            : base("/roles")
        {
            this.Get["/"] = _ => 
                    {
                        var request = this.Bind<GetRoleList>();
                        var roles = db.GetAllRoles();
                        return Negotiate.WithModel(roles);
                    };

            this.Get["/{roleId:guid}"] = _ => 
                {
                    var req = this.Bind<GetRoleDetails>();
                    var role = db.GetRoleById(req.RoleId);

                    if (role == null)
                    {
                        return 404;
                    }

                    return Negotiate.WithModel(role);
                };

            this.Post["/"] = _ =>
                {
                    var req = this.Bind<CreateRole>();
                    db.CreateRole(req);
                        var role = db.GetRoleById(req.Id.GetValueOrDefault());
                        return Negotiate
                            .WithHeader("Location", "/roles/" + req.Id.GetValueOrDefault())
                            .WithModel(role)
                            .WithStatusCode(HttpStatusCode.Created);
                    };

            this.Put["/{roleId:guid}"] = _ =>
                {
                    var req = this.Bind<UpdateRole>();
                    db.UpdateRole(req);
                    var role = db.GetRoleById(req.RoleId);
                    
                    return
                        Negotiate.WithHeader("Location", "/roles/" + req.RoleId)
                                 .WithModel(role);
                };

            this.Delete["/{roleId:guid}"] = _ => 
                    {
                        var req = this.Bind<DeleteRole>();
                        db.DeleteRole(req);
                        return this.Negotiate.WithStatusCode(HttpStatusCode.NoContent);
                    };
        }
Beispiel #3
0
        public RolesModule(Database db)
            : base("/roles")
        {
            this.Get["/"] = _ =>
            {
                var request = this.Bind <GetRoleList>();
                var roles   = db.GetAllRoles();
                return(Negotiate.WithModel(roles));
            };

            this.Get["/{roleId:guid}"] = _ =>
            {
                var req  = this.Bind <GetRoleDetails>();
                var role = db.GetRoleById(req.RoleId);

                if (role == null)
                {
                    return(404);
                }

                return(Negotiate.WithModel(role));
            };

            this.Post["/"] = _ =>
            {
                var req = this.Bind <CreateRole>();
                db.CreateRole(req);
                var role = db.GetRoleById(req.Id.GetValueOrDefault());
                return(Negotiate
                       .WithHeader("Location", "/roles/" + req.Id.GetValueOrDefault())
                       .WithModel(role)
                       .WithStatusCode(HttpStatusCode.Created));
            };

            this.Put["/{roleId:guid}"] = _ =>
            {
                var req = this.Bind <UpdateRole>();
                db.UpdateRole(req);
                var role = db.GetRoleById(req.RoleId);

                return
                    (Negotiate.WithHeader("Location", "/roles/" + req.RoleId)
                     .WithModel(role));
            };

            this.Delete["/{roleId:guid}"] = _ =>
            {
                var req = this.Bind <DeleteRole>();
                db.DeleteRole(req);
                return(this.Negotiate.WithStatusCode(HttpStatusCode.NoContent));
            };
        }