private void VeifyApiClassesAssembly()
        {
            if (string.IsNullOrEmpty(ApiClassesFilesPath))
            {
                CurrentStatus  = $"API classes file path is empty!";
                settings_valid = false;
                MessageBox.Show("Please specify the file path wher you stored the API classes!");
                return;
            }

            try
            {
                CurrentStatus = $"Verifying the API classes, just a moment...";
                Task.Factory.StartNew(() =>
                {
                    DEKafkaMessageParser.InitializeEntityClassesTypes(ApiClassesFilesPath);
                }).ContinueWith((result) =>
                {
                    if (result.IsCompleted)
                    {
                        CurrentStatus = $"Verification on the API classes has completed, all are good!";
                    }
                });
            }
            catch (Exception ex)
            {
                settings_valid = false;
                CurrentStatus  = $"API classes initialized failed!";
                MessageBox.Show(CurrentStatus + ex.Message);
            }
        }
 private void OnMessageConsumed(string message)
 {
     if (message.Trim().StartsWith($"<{DEKafkaMessageContract.DEKafkaMessage}>"))
     {
         var deKafkaMsg = DEKafkaMessageParser.DeSerializeDEKafkaMessage(message);
         ShowDEKafkaMessageInfo(deKafkaMsg, message);
     }
 }
Ejemplo n.º 3
0
        public TableViewModel(string classifierName, string schemaName)
        {
            _classifierName = classifierName;
            _schemaName     = schemaName;
            var propNames = DEKafkaMessageParser.GetPropertiesOfEntityClass(classifierName);

            columnNameToTypesDict = DEKafkaMessageParser.GetEntityPropertiesTypes(classifierName);
            foreach (var propName in propNames)
            {
                var typeString = columnNameToTypesDict[propName];
                if (typeString == "list`1")
                {
                    continue;
                }
                TableColumnViewModel column = new TableColumnViewModel(propName, columnNameToTypesDict[propName]);
                Columns.Add(column);
            }
            _rows.CollectionChanged += Rows_CollectionChanged;
        }
Ejemplo n.º 4
0
        private Dictionary <string, CellValue> GetBeforeAfterImage(object msgUnit, bool isBefore)
        {
            var imageType   = isBefore ? DEKafkaMessageContract.BeforeImage : DEKafkaMessageContract.AfterImage;
            var payload     = msgUnit.GetType().GetProperty(DEKafkaMessageContract.Payload).GetValue(msgUnit);
            var payloadData = payload.GetType().GetProperty(imageType).GetValue(payload);
            var imageString = payloadData == null ? string.Empty : payloadData.ToString();

            object imageData = null;

            if (!string.IsNullOrEmpty(imageString.Trim()))
            {
                imageData = DEKafkaMessageParser.DeserializePayloadData(ClassifierName, imageString);
            }

            if (imageData == null)
            {
                return(null);
            }
            else
            {
                Dictionary <string, CellValue> image = new Dictionary <string, CellValue>();
                var columns = imageData.GetType().GetProperties(BindingFlags.Instance | BindingFlags.Public);
                foreach (var column in columns)
                {
                    var    dataType       = columnNameToTypesDict[column.Name];
                    string columnValue    = string.Empty;
                    var    columnValueObj = column.GetValue(imageData);
                    if (columnValueObj != null)
                    {
                        columnValue = column.PropertyType.IsNested ? GetGroupPropertyValue(columnValueObj) : columnValueObj.ToString();
                    }
                    image[column.Name] = new CellValue()
                    {
                        Value = columnValue.ToString(), ValueType = dataType
                    };
                }
                return(image);
            }
        }