Exemple #1
0
        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);
            }
        }
Exemple #2
0
        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);
        }