public async Task <SubmitResponse> Post(Guid id, string side, PublisherRequest request) { try { var submitKey = new SubmitKey(id, side); await _submitHandler.PostAsync(submitKey, request.Data); return(new SubmitResponse { Body = new SubmitResponse.Success { Message = "OK" }, StatusCode = HttpStatusCode.Accepted }); } catch (Exception ex) { return(new SubmitResponse { Body = new SubmitResponse.Error { Message = ex.Message, Source = ex.Source, StackTrace = ex.StackTrace }, StatusCode = HttpStatusCode.InternalServerError }); } }
internal Hashgraph.TopicInfo ToTopicInfo() { return(new Hashgraph.TopicInfo { Memo = Memo, RunningHash = RunningHash.ToArray(), SequenceNumber = SequenceNumber, Expiration = ExpirationTime.ToDateTime(), Administrator = AdminKey?.ToEndorsement(), Participant = SubmitKey?.ToEndorsement(), AutoRenewPeriod = AutoRenewPeriod.ToTimeSpan(), RenewAccount = AutoRenewAccount?.ToAddress() }); }
/// <summary> /// Submits key-value pair to kafka topic. /// </summary> /// <param name="key">A <see cref="SubmitKey"/> instance.</param> /// <param name="value">A <see cref="string"/> instance.</param> /// <returns> /// A <see cref="Task"/> representing a single asynchronous operation that does not return a value. /// </returns> /// <remarks> /// Right now cannot be unit-tested, since <see cref="Producer{TKey,TValue}"/> methods cannot be mocked. /// </remarks> public async Task PostAsync(SubmitKey key, string value) { using (var producer = new Producer <SubmitKey, string>(_config, _keySerializer, _valueSerializer)) { producer.OnError += (_, e) => _logger.Info($"Error: {e}"); producer.OnLog += (_, m) => _logger.Info($"Name: {m.Name} Level: {m.Level} Facility: {m.Facility} Message: {m.Message}."); producer.OnStatistics += (_, s) => _logger.Info($"Statistics: {s}"); _logger.Info($"Producing item: {key} - {value}."); await producer.ProduceAsync(Topic, key, value); _logger.Info("Flushing..."); producer.Flush(FlushTimeoutMS); _logger.Info("Flushed."); } }