public void SetCapabilities(Dictionary <string, object> clientCapabilities) { if (clientCapabilities == null || clientCapabilities.Count == 0) { return; } var builder = new CapabilitiesSet(); var capabilities = new Capabilities(); foreach (var cap in clientCapabilities) { var value = new Any(); if (cap.Key == "tls") { value = ExprUtil.BuildAny(cap.Value); } else if (cap.Key == "session_connect_attrs" || cap.Key == "compression") { var obj = new Mysqlx.Datatypes.Object(); if (cap.Key == "session_connect_attrs") { foreach (var pair in (Dictionary <string, string>)cap.Value) { obj.Fld.Add(new ObjectField { Key = pair.Key, Value = ExprUtil.BuildAny(pair.Value) }); } } else if (cap.Key == "compression") { foreach (var pair in (Dictionary <string, object>)cap.Value) { obj.Fld.Add(new ObjectField { Key = pair.Key, Value = ExprUtil.BuildAny(pair.Value) }); } } value = new Any { Type = Any.Types.Type.Object, Obj = obj }; } var capabilityMsg = new Capability() { Name = cap.Key, Value = value }; capabilities.Capabilities_.Add(capabilityMsg); } builder.Capabilities = capabilities; _writer.Write(ClientMessageId.CON_CAPABILITIES_SET, builder); ReadOk(); }
public void SetCapabilities(Dictionary <string, object> clientCapabilities) { if (clientCapabilities == null || clientCapabilities.Count == 0) { return; } var builder = new CapabilitiesSet(); var capabilities = new Capabilities(); foreach (var cap in clientCapabilities) { var capabilityMsg = new Capability() { Name = (cap.Key), Value = ExprUtil.BuildAny(cap.Value) }; capabilities.Capabilities_.Add(capabilityMsg); } builder.Capabilities = capabilities; _writer.Write(ClientMessageId.CON_CAPABILITIES_SET, builder); ReadOk(); }