public ReadOnlyCollection <IFile> GetByAttribute(FileComparisonAttribute attribute, FileComparisonOperator @operator, int value) { VersionVerifier.EnsureVersion(Session); const string FILTER_FILES_BY_COMMAND = @"<MEDIA><FOLDER guid=""{0}"" subdirguid=""{0}""><FILES action=""list"" view=""thumbnail"" sectioncount=""30"" maxfilesize=""0"" command=""{1}"" op=""{2}"" value=""{3}"" startcount=""1"" orderby=""name""/></FOLDER></MEDIA>"; var rqlString = FILTER_FILES_BY_COMMAND.RQLFormat(Folder, ComparisonAttributeToString(attribute), ComparisonOperatorToString(@operator), value); return(RetrieveFiles(rqlString).AsReadOnly()); }
private void InitializeUserData() { var messageData = GetMessage(); var msg = new ConnectionMessage(messageData); if (!VersionVerifier.Verify(msg.Hash)) { Stream.Write(new PostCodeMessage(11).Serialize()); server.RemoveConnection(Id); return; } SendId(); server.BroadcastMessage(msg, Id); }
public override byte[] Serialize() { byte[] data = null; var connectionData = Serializer.SerializeString(Connection.ToString()); var userData = Sender.Serialize(); switch (Connection) { case Connection.Connect: { data = new byte[sizeof(int) + connectionData.Length + userData.Length + VersionVerifier.GetHash().Length]; using var stream = new MemoryStream(data); using var writer = new BinaryWriter(stream); writer.Write(PostCode); writer.Write(connectionData); writer.Write(userData); writer.Write(VersionVerifier.GetHash()); break; } case Connection.Disconnect: { data = new byte[sizeof(int) + connectionData.Length + userData.Length]; using var stream = new MemoryStream(data); using var writer = new BinaryWriter(stream); writer.Write(PostCode); writer.Write(connectionData); writer.Write(userData); break; } } return(data); }
private static void ParseCommand(string command) { var input = _network.GetInputType(command); switch (input) { //If this is not a command case Input.Message: _network.SendMessage(new SimpleMessage(_network.User, command)); break; case Input.Command: { string[] args = _network.GetCommandArgs(command); switch (args[0]) { case { } s when(s == "join" || s == "connect"): { if (_network.IsConnectedToServer()) //So if you try reconnect and you already have session { _network.Cmd.WriteLine("You need to disconnect first"); //You need ro disconnect) return; } if (_network.TryJoin(args)) { _connectionSound.TryPlay(); } break; } case { } s when(s == "create" || s == "room"): { if (args.Length == 2) { if (_network.TryCreateRoom(args[1])) { _connectionSound?.TryPlay(); } } break; } // ReSharper disable once StringLiteralTypo case { } s when(s == "disconnect" || s == "dconnect"): { if (args.Length == 1) { _network.TryDisconnect(); } break; } case { } s when(s == "clear" || s == "clr"): { if (args.Length == 1) { _network.Cmd.Clear(); } break; } case { } s when(s == "color"): { if (args.Length != 2) { return; } _network.User.SetColor(ColorParser.GetColorFromString(args[1])); _network.SendMessage(new UserDataMessage(Method.Send, _network.User)); break; } case { } s when(s == "hash"): { if (args.Length == 1) { _network.Cmd.WriteLine(VersionVerifier.GetStringHash()); } break; } } break; } default: throw new ArgumentOutOfRangeException(); } }