private void SendError(HttpStatusCode code, Socket sender) { var errResponse = new CreateChannelResponsePacket(new CreateChannelResponsePacketData( (int)code, null )); Zephy.serverSocket.SendPacket(errResponse, sender); }
protected override void Handle(CreateChannelRequestPacket packet, Socket sender) { var data = packet.Data; if (data == null) { return; } // check whether request is valid if (data.withMembers.Count <= 1 || Util.HasDuplicates(data.withMembers)) { SendError(HttpStatusCode.BadRequest, sender); return; } ActiveUser user = ActiveUsers.GetUser(sender); if (user == null) { SendError(HttpStatusCode.Unauthorized, sender); return; } if (channelCrud.Exists(data.withMembers)) { SendError(HttpStatusCode.Conflict, sender); return; } // create actual channel var newChannel = new Channel() { name = data.name, members = data.withMembers, }; channelCrud.CreateOne(newChannel); var successResponse = new CreateChannelResponsePacket(new CreateChannelResponsePacketData( (int)HttpStatusCode.OK, newChannel )); Zephy.serverSocket.SendPacket(successResponse, sender); }