Beispiel #1
0
        /// <summary>
        /// 檢視
        /// </summary>
        private void View()
        {
            var json = JsonFunc.ObjectToJson(this.DefineFileHelper.DatabaseSettings);

            Console.WriteLine("=====================");
            Console.WriteLine(json);
            Console.WriteLine("=====================");
            Console.WriteLine("Continue...");
            Console.ReadKey();
        }
Beispiel #2
0
        /// <summary>
        /// 儲存定義檔案
        /// </summary>
        /// <param name="defineFile"></param>
        /// <returns></returns>
        public void SaveDefine(IDefineFile defineFile)
        {
            if (defineFile == null)
            {
                throw new GException("Define is null");
            }

            var json = JsonFunc.ObjectToJson(defineFile);

            FileFunc.FileWriteAllText(defineFile.GetDefineFilePath(), json, true);
        }
Beispiel #3
0
 public void ReadObject(JsonFunc <string, bool> key, JsonAction readValue)
 {
     if (key is null)
     {
         throw new ArgumentNullException(nameof(key));
     }
     if (readValue is null)
     {
         throw new ArgumentNullException(nameof(readValue));
     }
     Read(false, key, i => readValue());
 }
        private void GetMensageriaEmail(ResponseRabbitMQ dados)
        {
            if (dados is null || dados.Body.IsEmpty)
            {
                return;
            }
            var email = JsonFunc.DeserializeObject <Email>(Encoding.UTF8.GetString(dados.Body.ToArray()));

            if (email != null)
            {
                _observaleEmail.Send(email);
            }
        }
Beispiel #5
0
    public Task Producer(object request, string fila = null, IModel channel = null)
    {
        var canalEscolhido = channel ?? _channel;

        if (fila is not null)
        {
            CreateQueue(fila, channel is null ? null : channel);
        }
        var body = Encoding.UTF8.GetBytes(JsonFunc.SerializeObject(request));

        canalEscolhido.BasicPublish(string.Empty, fila, null, body);
        return(Task.FromResult(0));
    }
Beispiel #6
0
        /// <summary>
        /// 展開程式設定
        /// </summary>
        private static void ExtractProgramSetting()
        {
            var progSettings = from f in Directory.EnumerateFiles(SysDefineSettingName.SystemPath, SysDefineSettingName.ProgramSettingName, SearchOption.AllDirectories)
                               select new { Setting = JsonFunc.JsonToObject <GProgramSetting>(FileFunc.FileReadAllText(f)) };

            foreach (var set in progSettings)
            {
                if (!CacheKeeper.HasItem <GProgramSetting>(nameof(GProgramSetting)))
                {
                    CacheKeeper.AddItem(nameof(GProgramSetting), set.Setting);
                    ExtractProgramSetting(set.Setting);
                }
            }
        }
 public void ReadObject(JsonFunc <string, bool> key, JsonAction readValue)
 {
     if (key is null)
     {
         throw new ArgumentNullException(nameof(key));
     }
     if (readValue is null)
     {
         throw new ArgumentNullException(nameof(readValue));
     }
     foreach (JsonKey jsonKey in Values.Peek())
     {
         if (key(jsonKey.Name))
         {
             Values.Push(jsonKey);
             readValue();
             Values.Pop();
         }
     }
 }
        public async Task Producer(object request, string fila, IModel channel = null, bool criarQueue = false)
        {
            var canalEscolhido = channel ?? _channel;

            if (criarQueue)
            {
                await CreateQueue(fila, canalEscolhido);
            }
            canalEscolhido.BasicPublish(string.Empty, fila, null, Encoding.UTF8.GetBytes(JsonFunc.SerializeObject(request)));
        }
Beispiel #9
0
        /// <summary>
        /// json檔案轉型為定義
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="filePath"></param>
        /// <returns></returns>
        private static T ConvertToDefine <T>(string filePath)
        {
            var json = FileFunc.FileReadAllText(filePath);

            return(JsonFunc.JsonToObject <T>(json));
        }
Beispiel #10
0
        public Task Producer(object request, string fila)
        {
            var canalEscolhido = CreateChannel();

            canalEscolhido.BasicPublish(string.Empty, fila, null, Encoding.UTF8.GetBytes(JsonFunc.SerializeObject(request)));
            canalEscolhido.Dispose();
            return(Task.CompletedTask);
        }
 public TReturn GetBody <TReturn>() => JsonFunc.DeserializeObject <TReturn>(Encoding.UTF8.GetString(Body.ToArray()));
Beispiel #12
0
        void Read(bool isArray, JsonFunc <string, bool> key, Action <int> readValue)
        {
            if (!isArray && key is null)
            {
                throw new ArgumentNullException(nameof(key));
            }
            if (readValue is null)
            {
                throw new ArgumentNullException(nameof(readValue));
            }
            JsonTokenType start = isArray ? JsonTokenType.LeftBracket : JsonTokenType.LeftBrace;

            if (Current.Type != start)
            {
                throw new JsonTextReaderException(this, isArray ? JsonKeyword.LeftBracket : JsonKeyword.LeftBrace);
            }
            JsonTokenType end     = isArray ? JsonTokenType.RightBracket : JsonTokenType.RightBrace;
            bool          isFirst = true;
            int           i       = 0;

            while (MoveNext())
            {
                if (Current.Type == end)
                {
                    return;
                }
                if (isFirst)
                {
                    isFirst = false;
                }
                else
                {
                    if (Current.Type != JsonTokenType.Comma)
                    {
                        throw new JsonTextReaderException(this, JsonKeyword.Comma);
                    }
                    MoveNext();
                }
                bool needReadValue = true;
                if (!isArray)
                {
                    if (Current.Type != JsonTokenType.String)
                    {
                        throw new JsonTextReaderException(this, "键名");
                    }
                    needReadValue = key(Regex.Unescape(Current));
                    MoveNext();
                    if (Current.Type != JsonTokenType.Semicolon)
                    {
                        throw new JsonTextReaderException(this, JsonKeyword.Semicolon);
                    }
                    MoveNext();
                }
                if (needReadValue)
                {
                    readValue(i++);
                    continue;
                }
                ConsumptionValue();
            }
            if (isFirst)
            {
                throw new JsonTextReaderException(this, isArray ? "值" : "键名", isArray ? JsonKeyword.RightBracket : JsonKeyword.RightBrace);
            }
            throw new JsonTextReaderException(this, JsonKeyword.Comma, isArray ? JsonKeyword.RightBracket : JsonKeyword.RightBrace);
        }
Beispiel #13
0
        public void ReadObject(JsonFunc <string, bool> key, JsonAction readValue)
        {
            if (key is null)
            {
                throw new ArgumentNullException(nameof(key));
            }
            if (readValue is null)
            {
                throw new ArgumentNullException(nameof(readValue));
            }
            Initialize(false);
            switch (Stacks.Peek().ObjectType)
            {
            default:
                throw new JsonNotSupportException(Stacks.Peek().ObjectType);

            case JsonObjectType.Class:
                JsonApi.ForEachSerializableMembers(Stacks.Peek().Type, (memberInfo, fieldInfo, propertyInfo, field) => {
                    bool isReaded   = false;
                    object instance = null;
                    Type fieldType  = null;
                    object Read()
                    {
                        if (isReaded)
                        {
                            return(instance);
                        }
                        isReaded = true;
                        switch (memberInfo.MemberType)
                        {
                        default:
                            throw new JsonNotSupportException(memberInfo.MemberType);

                        case MemberTypes.Field:
                            fieldType = fieldInfo.FieldType;
                            return(instance = fieldInfo.GetValue(Stacks.Peek().Instance));

                        case MemberTypes.Property:
                            fieldType = propertyInfo.PropertyType;
                            return(instance = propertyInfo.GetValue(Stacks.Peek().Instance, null));
                        }
                    }
                    object ConverterWrite(object value)
                    {
                        if (field?.HasConverter ?? false)
                        {
                            if (field.ConverterWriteType != fieldType.BaseType &&
                                JsonApi.GetElementType(field.ConverterWriteType) != JsonApi.GetElementType(fieldType).BaseType
                                )
                            {
                                fieldType = field.ConverterWriteType;
                            }
                            return(field.ConverterWrite(value, Config));
                        }
                        return(value);
                    }
                    if (!JsonApi.CanSerializeValue(Read(), Config))
                    {
                        return;
                    }
                    if (key(field?.Name ?? memberInfo.Name))
                    {
                        Stacks.Push(new JsonSerializerStack(ConverterWrite(Read()), field));
                        Stacks.Peek().Type = fieldType;
                        readValue();
                        Stacks.Pop();
                    }
                });
                break;

            case JsonObjectType.DataRow: {
                DataRow dataRow = (DataRow)Stacks.Peek().Instance;
                for (int i = 0; i < dataRow.Table.Columns.Count; i++)
                {
                    if (key(dataRow.Table.Columns[i].ColumnName))
                    {
                        Stacks.Push(new JsonSerializerStack(dataRow[i]));
                        readValue();
                        Stacks.Pop();
                    }
                }
                break;
            }

            case JsonObjectType.DataSet: {
                DataSet dataSet = (DataSet)Stacks.Peek().Instance;
                foreach (DataTable dataTable in dataSet.Tables)
                {
                    if (key(dataTable.TableName))
                    {
                        Stacks.Push(new JsonSerializerStack(dataTable));
                        readValue();
                        Stacks.Pop();
                    }
                }
                break;
            }

            case JsonObjectType.GenericDictionary:
            case JsonObjectType.GenericSortedDictionary:
            case JsonObjectType.GenericSortedList: {
                IDictionary dictionary = (IDictionary)Stacks.Peek().Instance;
                foreach (DictionaryEntry entry in dictionary)
                {
                    if (key(Convert.ToString(entry.Key)))
                    {
                        Stacks.Push(new JsonSerializerStack(entry.Value));
                        readValue();
                        Stacks.Pop();
                    }
                }
                break;
            }

            case JsonObjectType.GenericKeyValuePair: {
                if (key(Convert.ToString(Stacks.Peek().Type.GetProperty("Key").GetValue(Stacks.Peek().Instance, null))))
                {
                    Stacks.Push(new JsonSerializerStack(Stacks.Peek().Type.GetProperty("Value").GetValue(Stacks.Peek().Instance, null)));
                    readValue();
                    Stacks.Pop();
                }
                break;
            }
            }
        }