public FurnitureCreator( IRoomReader roomReader, IQueryBuilder queryBuilder) { this.roomReader = roomReader; this.queryBuilder = queryBuilder; }
public RoomStateReader( IRoomReader roomReader, IFurnitureReader furnitureReader) { this.roomReader = roomReader; this.furnitureReader = furnitureReader; }
public RoomRemover( IRoomReader reader, IRoomChecker checker, IFurnitureMover furnitureMover, IRepository<Room> repository, IRoomEventLogger eventLogger) { this.reader = reader; this.checker = checker; this.furnitureMover = furnitureMover; this.repository = repository; this.eventLogger = eventLogger; }
public FurnitureMover( IRepository<Furniture> repository, IFurnitureLocationReader locationReader, IRoomReader roomReader, IRepository<FurnitureLocation> locationRepository, IRoomEventLogger eventLogger) { this.repository = repository; this.locationReader = locationReader; this.roomReader = roomReader; this.locationRepository = locationRepository; this.eventLogger = eventLogger; }
public RoomModule(IRoomReader reader, IRoomWriter writer) : base("/api/v1/rooms") { Get["/all"] = _ => { var rooms = reader.GetAllRooms(); if (rooms != null) { return(Negotiate .WithStatusCode(HttpStatusCode.OK) .WithModel(new { rooms })); } return(HttpStatusCode.BadRequest); }; Get["/{roomId:long}"] = p => { long roomId = p.roomId; var room = reader.GetRoom(roomId); if (room != null) { return(Negotiate .WithStatusCode(HttpStatusCode.OK) .WithModel(new { roomId, room })); } return(HttpStatusCode.BadRequest); }; Get["/{roomId:long}/{dateTime:long}"] = p => { var roomMessagesFromDate = reader.GetRoomMessagesFromDate(p.roomId, DateTimeJavascript.ToCsharpDateTime(p.dateTime)); if (roomMessagesFromDate != null) { return(Negotiate .WithStatusCode(HttpStatusCode.OK) .WithModel(new { messages = roomMessagesFromDate })); } return(HttpStatusCode.BadRequest); }; /** * Create Room */ Post["/"] = _ => { this.RequiresAuthentication(); var model = this.Bind <CreateRoomRequest>(); if (model == null) { return(HttpStatusCode.BadRequest); } var chatUser = (UserIdentity)Context.CurrentUser; writer.CreateRoom(model.Name, model.Description, chatUser.UserId); return(HttpStatusCode.OK); }; /** * Add a message to the room */ Post["/{roomId:long}"] = p => { this.RequiresAuthentication(); long roomId = p.roomId; var chatUser = (UserIdentity)Context.CurrentUser; var messageRequest = this.Bind <CreateMessageRequest>(); var message = new Message { UserId = chatUser.UserId, UserName = chatUser.UserName, PostedDate = DateTime.Now, RoomId = roomId, Text = messageRequest.Text, }; writer.AddMessage(message); return(Negotiate .WithStatusCode(HttpStatusCode.OK) .WithModel(new { roomId, message })); }; /** * Delete room */ Delete["/{roomId:long}"] = p => { this.RequiresAuthentication(); /* only admins can delete a room */ var chatUser = (UserIdentity)Context.CurrentUser; if (!chatUser.Claims.ToList().Contains("admin")) { return(HttpStatusCode.Unauthorized); } long roomId = p.roomId; writer.DeleteRoom(roomId); return(Negotiate .WithStatusCode(HttpStatusCode.OK) .WithModel(new { roomId })); }; }