private static void PrintMessageValue <TValue>(int key, TValue val)
            where TValue : class, IMessage <TValue>, new()
        {
            var             msg = string.Empty;
            var             tmp = string.Empty;
            GoogleTimestamp ts  = null;

            //if (val is Protos.v1.HelloReply val1)
            //{
            //    msg = val1.Message;
            //}
            //if (val is Protos.v2.HelloReply val2)
            //{
            //    msg = val2.Message;
            //    tmp = val2.TemperatureF != null ? $"at {val2.TemperatureF} degrees" : string.Empty;
            //}
            //if (val is Protos.v3.HelloReply val3)
            //{
            //    msg = val3.Message;
            //    tmp = val3.TemperatureF != null ? $"at {val3.TemperatureF} degrees" : string.Empty;
            //    ts = val3.DateTimeStamp;
            //}
            //if (val is Protos.v4.HelloReply val4)
            //{
            //    msg = val4.Message;
            //    ts = val4.DateTimeStamp;
            //}
            //if (val is Protos.v5.HelloReply val5)
            //{
            //    msg = val5.Message;
            //    var dt = DateTime.SpecifyKind(DateTime.Parse(val5.DateTimeStamp), DateTimeKind.Utc);
            //    ts = GoogleTimestamp.FromDateTime(dt);
            //}
            Console.WriteLine($"\nMessage value: {key} (key) {msg} {tmp} {ts}");
        }
        private static void PrintConsumeResult <TKey, TValue>(ConsumeResult <TKey, TValue> consumeResult)
        // where TKey : class, new()
            where TValue : class, new()
        {
            long            key        = 0;
            long            id         = 0;
            var             first_name = string.Empty;
            var             last_name  = string.Empty;
            var             favColor   = string.Empty;
            int             age        = 0;
            GoogleTimestamp ts         = new GoogleTimestamp();

            if (consumeResult.Message.Value is Protos.Source.v1.person val1)
            {
                id         = val1.PersonId;
                first_name = val1.FirstName;
                last_name  = val1.LastName;
                favColor   = val1.FavoriteColor;
                age        = val1.Age;
                ts         = val1.RowVersion;
            }
            // if (consumeResult.Message.Key is Source.Key key1)
            // {
            //     key = key1.PersonId;
            // }
            Console.WriteLine($"Received message at {consumeResult.TopicPartitionOffset}: Key: {key}, " +
                              $"Id: {id}, Name: {first_name} {last_name}, Fav Color: {favColor}, Age: {age} RowVersion: {ts}");
        }
        private static TValue CreateMessageValue <TValue>(string msg)
            where TValue : class, IMessage <TValue>, new()
        {
            int?tmp = new Random().Next(-32, 100);
            var ts  = GoogleTimestamp.FromDateTime(DateTime.UtcNow);
            var val = new TValue();

            //if (val is IHelloReply val1)
            //{
            //    val1.Message = msg;
            //};
            //if (val is IHelloReply_2 val2)
            //{
            //    val2.TemperatureF = tmp;
            //};
            //if (val is IHelloReply_3 val3)
            //{
            //    val3.TemperatureF = tmp;
            //    val3.DateTimeStamp = ts;
            //};
            //if (val is IHelloReply_4 val4)
            //{
            //    val4.DateTimeStamp = ts;
            //};
            //if (val is IHelloReply_5 val5)
            //{
            //    val5.DateTimeStamp = DateTime.UtcNow.ToLongTimeString();
            //};
            return(val);
        }
        /// <inheritdoc/>
        protected override DateTime ReadValue(ref ParseContext context)
        {
            var timestamp = new Google.Protobuf.WellKnownTypes.Timestamp();

            context.ReadMessage(timestamp);
            return(timestamp.ToDateTime());
        }
示例#5
0
        public static void GetChecksum(this Google.Protobuf.WellKnownTypes.Timestamp tmp, BinaryWriter inWriter)
        {
            using (var memStream = new MemoryStream())
            {
                var dataStream = new CodedOutputStream(memStream);
                tmp.WriteTo(dataStream);

                // this sucks because its going to do a copy :/
                inWriter.Write(memStream.ToArray());
            }
        }
示例#6
0
        void pb.IBufferMessage.InternalMergeFrom(ref pb.ParseContext input)
        {
            uint tag;

            while ((tag = input.ReadTag()) != 0)
            {
                switch (tag)
                {
                default:
                    _unknownFields = pb.UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
                    break;

                case 10: {
                    ClientId = input.ReadString();
                    break;
                }

                case 18: {
                    MessageId = input.ReadString();
                    break;
                }

                case 24: {
                    Type = (MessageType)input.ReadEnum();
                    break;
                }

                case 34: {
                    if (time_ == null)
                    {
                        Time = new Google.Protobuf.WellKnownTypes.Timestamp();
                    }
                    input.ReadMessage(Time);
                    break;
                }

                case 40: {
                    Status = (MessageStatus)input.ReadEnum();
                    break;
                }

                case 50: {
                    Payload = input.ReadBytes();
                    break;
                }

                case 56: {
                    Response = (ResponseType)input.ReadEnum();
                    break;
                }
                }
            }
        }
示例#7
0
 public void MergeFrom(RequestMessage other)
 {
     if (other == null)
     {
         return;
     }
     if (other.ClientId.Length != 0)
     {
         ClientId = other.ClientId;
     }
     if (other.MessageId.Length != 0)
     {
         MessageId = other.MessageId;
     }
     if (other.Type != MessageType.Undefined)
     {
         Type = other.Type;
     }
     if (other.time_ != null)
     {
         if (time_ == null)
         {
             Time = new Google.Protobuf.WellKnownTypes.Timestamp();
         }
         Time.MergeFrom(other.Time);
     }
     if (other.Status != MessageStatus.Undefined)
     {
         Status = other.Status;
     }
     if (other.Payload.Length != 0)
     {
         Payload = other.Payload;
     }
     if (other.Response != ResponseType.Undefined)
     {
         Response = other.Response;
     }
     _unknownFields = pb.UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
 }
        public void FSCommit()
        {
            FirestoreTestUtils.ColoredConsoleWrite(ConsoleColor.Green, "\n :: Starting Commit ::\n");
            if (TransactionId == null)
            {
                FirestoreTestUtils.ColoredConsoleWrite(ConsoleColor.Yellow, "No transaction to commit, returning!\n");
                return;
            }
            var commitRequest = new CommitRequest();

            commitRequest.Database    = Parent;
            commitRequest.Transaction = TransactionId;
            var commitResponse = new CommitResponse();

            try
            {
                commitResponse = FsClient.Commit(commitRequest);
            }
            catch (Exception e)
            {
                FirestoreTestUtils.ColoredConsoleWrite(ConsoleColor.Red, "Exception caught\n" + e.Message);
                return;
            }
            var timestamp = commitResponse.CommitTime;

            if (timestamp == null)
            {
                timestamp = new Google.Protobuf.WellKnownTypes.Timestamp();
                // fix
            }
            FirestoreTestUtils.ColoredConsoleWrite(ConsoleColor.Green, "\n Successfully commit at ");
            FirestoreTestUtils.ColoredConsoleWrite(ConsoleColor.White, timestamp.ToDateTime().ToString());
            FirestoreTestUtils.ColoredConsoleWrite(ConsoleColor.Green, "!");
            // clear transactionId!
            ClearTransactionId();
        }
        private static void PrintConsumeResult <TValue>(ConsumeResult <int, TValue> consumeResult)
            where TValue : class, IMessage <TValue>, new()
        {
            var             key = consumeResult.Message.Key;
            var             msg = string.Empty;
            var             tmp = string.Empty;
            GoogleTimestamp ts  = null;

            //if (consumeResult.Message.Value is Protos.v1.HelloReply val1)
            //{
            //    msg = val1.Message;
            //}
            //if (consumeResult.Message.Value is Protos.v2.HelloReply val2)
            //{
            //    msg = val2.Message;
            //    tmp = val2.TemperatureF != null ? $"at {val2.TemperatureF} degrees" : string.Empty;
            //}
            //if (consumeResult.Message.Value is Protos.v3.HelloReply val3)
            //{
            //    msg = val3.Message;
            //    tmp = val3.TemperatureF != null ? $"at {val3.TemperatureF} degrees" : string.Empty;
            //    ts = val3.DateTimeStamp;
            //}
            //if (consumeResult.Message.Value is Protos.v4.HelloReply val4)
            //{
            //    msg = val4.Message;
            //    ts = val4.DateTimeStamp;
            //}
            //if (consumeResult.Message.Value is Protos.v5.HelloReply val5)
            //{
            //    msg = val5.Message;
            //    var dt = DateTime.SpecifyKind(DateTime.Parse(val5.DateTimeStamp), DateTimeKind.Utc);
            //    ts = GoogleTimestamp.FromDateTime(dt);
            //}
            Console.WriteLine($"Received message at {consumeResult.TopicPartitionOffset}: {key} (key) {msg} {tmp} {ts}");
        }
示例#10
0
 public static string ProtoTs2Utc(Google.Protobuf.WellKnownTypes.Timestamp utcTs, string format = DtFormats.HhMm)
 {
     return(utcTs.ToDateTimeOffset().ToString(format) + " (UTC)");            // UTC
 }