/// <summary> /// 檢視 /// </summary> private void View() { var json = JsonFunc.ObjectToJson(this.DefineFileHelper.DatabaseSettings); Console.WriteLine("====================="); Console.WriteLine(json); Console.WriteLine("====================="); Console.WriteLine("Continue..."); Console.ReadKey(); }
/// <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); }
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); } }
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)); }
/// <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))); }
/// <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)); }
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()));
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); }
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; } } }