private void ProcessSessionStateChanged(BaseResult rs, byte[] payload) { SessionStateChanged state = SessionStateChanged.Parser.ParseFrom(payload); switch (state.Param) { case SessionStateChanged.Types.Parameter.RowsAffected: rs._recordsAffected = state.Value[0].VUnsignedInt; rs._affectedItemsCount = rs._recordsAffected; break; case SessionStateChanged.Types.Parameter.GeneratedInsertId: rs._autoIncrementValue = state.Value[0].VUnsignedInt; break; case SessionStateChanged.Types.Parameter.ProducedMessage: rs.AddWarning(new WarningInfo(0, state.Value[0].VString.Value.ToStringUtf8())); break; case SessionStateChanged.Types.Parameter.GeneratedDocumentIds: foreach (var value in state.Value) { rs._documentIds.Add(value.VOctets.Value.ToStringUtf8()); } break; //handle the other ones //default: SessionStateChanged(state); } }
private void ProcessWarning(BaseResult rs, byte[] payload) { Warning w = Warning.Parser.ParseFrom(payload); WarningInfo warning = new WarningInfo(w.Code, w.Msg); if (w.Level != Warning.Types.Level.None) { warning.Level = (uint)w.Level; } rs.AddWarning(warning); }