public void AddDatumId(DatumId datumId)
        {
            var datumStr = datumId.ToString();

            if (_datumIdToCallbackId.ContainsKey(datumStr) || _callbackIdToDatumId.ContainsValue(datumStr))
            {
                return;
            }
            var callbackId = _nextCallbackId++;

            _callbackIdToDatumId.Add(callbackId, datumStr);
            _datumIdToCallbackId.Add(datumStr, callbackId);
        }
示例#2
0
 internal JArray GetSessionsCompletedList(JObject dataFile, DatumId datumId)
 {
     return((JArray)dataFile[datumId.ToString()]?[SessionsDoneKey]);
 }
示例#3
0
 internal JArray GetOptionsList(JObject dataFile, DatumId datumId)
 {
     return((JArray)dataFile[datumId.ToString()]?[_tagsKey]);
 }
示例#4
0
            internal JObject SetupDatumEntry(DatumId datumId)
            {
                var     dataFile = ParseJsonFile();
                JObject datumEntry;

                try
                {
                    datumEntry = (JObject)dataFile[datumId.ToString()];
                }
                catch (InvalidCastException)
                {
                    throw new JsonDataOutputException(
                              datumId,
                              "Failure to parse data entry, datum ID already points to a non-object value in the output file."
                              );
                }

                if (datumEntry == null)
                {
                    datumEntry = new JObject();
                    dataFile[datumId.ToString()] = datumEntry;
                }

                JArray sessionsDoneList;

                try
                {
                    sessionsDoneList = (JArray)datumEntry[SessionsDoneKey];
                }
                catch (InvalidCastException)
                {
                    throw new JsonDataOutputException(
                              datumId,
                              $"Failure to parse data entry, datum ID already has a \"{SessionsDoneKey}\" key " +
                              "(the key the bot intends to use to store which enrichment sessions are completed) " +
                              "pointing to a non-array value in the output file."
                              );
                }

                if (sessionsDoneList == null)
                {
                    sessionsDoneList            = new JArray();
                    datumEntry[SessionsDoneKey] = sessionsDoneList;
                }

                JArray tagList;

                try
                {
                    tagList = (JArray)datumEntry[_tagsKey];
                }
                catch (InvalidCastException)
                {
                    throw new JsonDataOutputException(
                              datumId,
                              $"Failure to parse data entry, datum ID already has a \"{_tagsKey}\" key " +
                              "(the key the bot intends to use to store the output of this enrichment session) " +
                              "pointing to a non-array value in the output file."
                              );
                }

                if (tagList == null)
                {
                    tagList = new JArray();
                    datumEntry[_tagsKey] = tagList;
                }

                return(dataFile);
            }
        public bool DatumIdHasMessage(DatumId datumId)
        {
            var callbackId = _datumIdToCallbackId[datumId.ToString()];

            return(_callbackIdToMessageId.ContainsKey(callbackId));
        }
 public int GetCallbackIdFromDatumId(DatumId datumId)
 {
     return(_datumIdToCallbackId[datumId.ToString()]);
 }