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); } }
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); }; }
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)); }; }