/// <summary> /// /// </summary> /// <param name="services"></param> public void ConfigureServices(IServiceCollection services) { DbContextConfiguration.AddService(services, Configuration); CorsConfiguration.AddService(services); RouteConfiguration.AddService(services); RouteAnalyzerExtension.AddService(services); services.AddMemoryCache(); services.AddHttpContextAccessor(); services.AddSingleton <IActionContextAccessor, ActionContextAccessor>(); try { // TODO: when use code gen, a exception will occurred. #pragma warning disable 618 AuthenticationConfiguration.AddService(services, Configuration); services.AddAutoMapper(); #pragma warning disable 618 } catch { } WebEncoderConfiguration.AddService(services); ValidateConfiguration.AddService(services); JsonExtension.AddService(services); SetCompatibilityVersionExtension.AddService(services); }
public bool SendMessage(object message) { if (message == null || !(message is BaseMessage)) { return(false); } Type messageType = message.GetType(); PropertyInfo serialNoProperty = messageType.GetProperty("SerialNo"); if (serialNoProperty != null) { object SerialNo = serialNoProperty.GetValue(message); if (SerialNo == null || SerialNo.ToString() == string.Empty) { serialNoProperty.SetValue(message, Guid.NewGuid().ToString("N")); } } PropertyInfo messageTypeProperty = messageType.GetProperty("MessageType"); if (messageTypeProperty != null) { messageTypeProperty.SetValue(message, messageType.Name); } string strMessage = JsonExtension.ToJSON(message); byte[] data = Encoding.UTF8.GetBytes(strMessage); Send(data, 0, data.Length); OnSendMessage?.Invoke(strMessage); return(true); }
/// <summary> /// /// </summary> /// <param name="services"></param> public void ConfigureServices(IServiceCollection services) { SwaggerConfiguration.AddService(services); DbContextExtension.AddService(services, Configuration); CorsExtension.AddService(services); RouteExtension.AddService(services); RouteAnalyzerExtension.AddService(services); services.AddMemoryCache(); services.AddHttpContextAccessor(); services.AddSingleton <IActionContextAccessor, ActionContextAccessor>(); try { #pragma warning disable 618 AuthenticationConfiguration.AddService(services, Configuration); services.AddAutoMapper(); #pragma warning disable 618 } catch { } WebEncoderConfiguration.AddService(services); ValidateConfiguration.AddService(services); JsonExtension.AddService(services); SetCompatibilityVersionExtension.AddService(services); }
static void Main(string[] args) { var userInfo = new UserInfo() { Email = "testmail", Username = "******" }; //var response = new ApiResponse<UserInfo>() { Content = userInfo }; var response = new ApiResponse <UserInfo>() { Errors = new[] { "f**k" } }; var serializerOption = new JsonSerializerOptions(); serializerOption.PropertyNamingPolicy = JsonNamingPolicy.CamelCase; JsonExtension.GetAllConverters().ToList().ForEach(serializerOption.Converters.Add); var text = JsonSerializer.Serialize(response, serializerOption); Console.WriteLine($"test : {text}"); var actual = JsonSerializer.Deserialize <ApiResponse <UserInfo> >(text, serializerOption); Console.WriteLine(actual.Content.Username); }
private void HandleMessageThread() { while (true) { string strMessage = string.Empty; while (_receivedQueue.TryDequeue(out strMessage)) { var handler = _handlerList.Find(q => q.MessageType.Name == Utility.GetMessageType(strMessage)); if (handler != null && handler.Handlers.Count > 0) { object message = JsonExtension.FromJSON(handler.MessageType, strMessage); //try waitting queue CheckWattingQueue(message); foreach (Action <object> action in handler.Handlers) { if (action != null) { action(message); } } OnReceivedObject?.Invoke(message); } else { // if no handler, directly convert to object, but what this object will be?? object message = JsonExtension.FromJSON(strMessage); OnReceivedObject?.Invoke(message); } } Thread.Sleep(1000); } }
private byte[] ConstructData(object message) { Type messageType = message.GetType(); PropertyInfo serialNoProperty = messageType.GetProperty("SerialNo"); if (serialNoProperty != null) { object SerialNo = serialNoProperty.GetValue(message); if (SerialNo == null || SerialNo.ToString() == string.Empty) { serialNoProperty.SetValue(message, Guid.NewGuid().ToString("N")); } } PropertyInfo messageTypeProperty = messageType.GetProperty("MessageType"); if (messageTypeProperty != null) { messageTypeProperty.SetValue(message, messageType.Name); } string strMessage = JsonExtension.ToJSON(message); byte[] data = Encoding.UTF8.GetBytes(strMessage); return(data); }
private void HandleMessageThread() { while (true) { ReceivedMessage receivedMessage = new ReceivedMessage(); while (_receivedQueue.TryDequeue(out receivedMessage)) { var handler = _handlerList.Find(q => q.MessageType.Name == Utility.GetMessageType(receivedMessage.message)); if (handler != null & handler.Handlers.Count > 0) { object message = JsonExtension.FromJSON(handler.MessageType, receivedMessage.message); foreach (Action <int, object> handle in handler.Handlers) { //Task.Run(() => handle(arg1, message)); if (handle != null) { handle(receivedMessage.connectID, message); } } OnReceivedObject?.Invoke(GetClientIpById(receivedMessage.connectID), GetClientPortIpById(receivedMessage.connectID), receivedMessage.connectID, message); } else { // if no handler, directly convert to object, but what this object will be?? object message = JsonExtension.FromJSON(receivedMessage.message); OnReceivedObject?.Invoke(GetClientIpById(receivedMessage.connectID), GetClientPortIpById(receivedMessage.connectID), receivedMessage.connectID, message); } } Thread.Sleep(1000); } }
protected override void DoWork() { if (ModBusDataFactory.LineReady == 0) { //获取到工位派工单 string orders = RedisClientRemote?.Get("LD:A01:MCIM:wc001"); RedisClientLocal.Set("LD:A01:MCIM:wc001", orders); var orderc = RedisClientLocal.Get("LD:A01:MCIM:wc001"); List <RMesDispatch> orderl = JsonExtension.JsonToModel <List <RMesDispatch> >(orderc); //暂存当前工单的产线标记 ModBusDataFactory.OrderLine = orderl[0].LINE; foreach (RMesDispatch dispatch in orderl) { ModBusDataFactory.dispatrchs.Enqueue(dispatch); } //从BC获取质量任务单,下发给检测机 //从BC获取物料编号对应的料箱规格存放在本地 //Repository _mesRepository = new Repository(SysConf.Main.DbMES); //var pROD_INFO = _mesRepository.Single<LD.MDCI.MESModels.TB_PROD_INFO>(w => // w.MATERIAL_CODE == orderl[0].MATERIAL_CODE); var rProdInfo = new RProdInfo(); Dictionary <string, int> PackageInfo = InitizePackageInfo(); int Package = PackageInfo[rProdInfo.PACKAGE]; RedisClientLocal.Set($"LD:{ModBusDataFactory.OrderLine}:APCM:PACKAGE", Package); //拿到单子后不再取单子,机器变为忙碌状态;到加工完毕后改为空闲 //ModbusConfModel confModel = ModbusConf.CnfModel.FirstOrDefault(v => v.Name == "PLC"); RedisClientLocal.Set($"LD:{ModBusDataFactory.OrderLine}:APCM:READY", 1); ModBusDataFactory.LineReady = 1; } }
private static JObject GetLayoutData(string uiDirectory) { var filename = Path.Combine(uiDirectory, "ui_track.json"); bool loaded; JObject value; lock (RecentlyParsed) { loaded = RecentlyParsed.TryGetValue(filename, out value); } if (!loaded) { try { value = JsonExtension.Parse(FileUtils.ReadAllText(filename)); lock (RecentlyParsed) { RecentlyParsed[filename] = value; } } catch (Exception e) { Logging.Warning(e); return(null); } } return(value); }
static void Main(string[] args) { // 第一步设置基本配置信息 MobPushConfig.appkey = "moba6b6c6d6"; MobPushConfig.appSecret = ""; // 初始化MobPushClient MobPushClient client = new MobPushClient(); PushWork push = new PushWork(new int[] { 1, 2 }, "c# client发送测试", (int)PushTypeEnum.notify) //初始化基础信息 .buildTarget((int)TargetEnum._1, null, null, null, null, null) // 设置推送范围 .buildAndroid("Android Title", (int)AndroidNotifyStyleEnum.normal, null, true, true, true) //定制android样式 .bulidIos("ios Title", "ios Subtitle", null, 1, null, null, null, null) //定制ios设置 .buildExtra(1, "{\"key1\":\"value\"}", 1) // 设置扩展信息 .buildScheme("mlink://com.mob.mobpush.link", "{\"key\":\"value\"}") ; string batchId = client.push(push); PushWork workinfo = client.pushById(batchId); Console.WriteLine("batchId : " + batchId); Console.WriteLine("workinfo : " + JsonExtension.ToJSON(workinfo)); Console.ReadLine(); }
public void TestEnumFromJson() { string str = "{\"Id\": 2, \"Code\": \"Byte\"}"; var h = JsonExtension.ParseJson <HaveEnum>(str); Assert.AreEqual(TypeCode.Byte, h.Code); }
/// <summary> /// 初期化參數 /// </summary> public override void InitParameter() { Numbers = Convert.ToInt32(JsonExtension.GetPropertyByJson(Reserve, "Numbers")); // 數字排序集合實例化 Formulas = new List <NumericSortingFormula>(); }
/// <summary> /// 初期化參數 /// </summary> public override void InitParameter() { SectionNumber = Convert.ToInt32(JsonExtension.GetPropertyByJson(Reserve, "SectionNumber")); // 等式接龍集合實例化 Formulas = new List <ConnectionFormula>(); }
private async Task <RestTextChannel> CreateChannels() { infoChannel = await discord.GetGuild(505485680344956928).CreateTextChannelAsync(randomEventModel.title + "-randomevent-info", null, new RequestOptions()); //await infoChannel.AddPermissionOverwriteAsync(discord.GetGuild(505485680344956928).Roles.FirstOrDefault(x => x.Id == 611102875241676811), new OverwritePermissions().Modify(readMessageHistory:Discord.PermValue.Allow, viewChannel: Discord.PermValue.Allow, sendMessages: Discord.PermValue.Deny)); await infoChannel.AddPermissionOverwriteAsync(discord.GetGuild(505485680344956928).Roles.FirstOrDefault(x => x.Id == 505485680344956928), new OverwritePermissions().Modify(readMessageHistory: Discord.PermValue.Allow, viewChannel: Discord.PermValue.Deny, useExternalEmojis: Discord.PermValue.Deny, sendMessages: Discord.PermValue.Deny)); generalChannel = await discord.GetGuild(505485680344956928).CreateTextChannelAsync(randomEventModel.title + "-randomevent-general", null, new RequestOptions()); await generalChannel.AddPermissionOverwriteAsync(discord.GetGuild(505485680344956928).Roles.FirstOrDefault(x => x.Id == 505485680344956928), new OverwritePermissions().Modify(readMessageHistory: Discord.PermValue.Deny, viewChannel: Discord.PermValue.Deny)); var eventleiders = randomEventModel.eventLeider.Split(" "); foreach (var eventleider in eventleiders) { var id = eventleider.Replace("<@!", "").Replace(">", ""); var user = discord.GetUser(ulong.Parse(id)); await infoChannel.AddPermissionOverwriteAsync(user, new OverwritePermissions().Modify(sendMessages: Discord.PermValue.Allow)); } var builder = EmbedBuilderExtension.NullEmbed(randomEventModel.title, randomEventModel.description, null, null); builder.AddField(new EmbedFieldBuilder { Name = "Datum", Value = randomEventModel.date.ToString() }); builder.AddField(new EmbedFieldBuilder { Name = "Locatie", Value = randomEventModel.locatie }); builder.AddField(new EmbedFieldBuilder { Name = "Eventleider(s)", Value = randomEventModel.eventLeider }); builder.Footer = new EmbedFooterBuilder { Text = "Groen vinkje = Ik neem deel aan \nBlauw vinkje = Ik ben geinteresseerd \nRode kruis = verwijder deze channel" }; await infoChannel.SendFileAsync("../../../Resources/Img/randomevent.jpg", "", false); var messageInChannel = await infoChannel.SendMessageAsync(null, false, builder.Build()); var deelnemersMessage = await infoChannel.SendMessageAsync(null, false, EmbedBuilderExtension.NullEmbed("Deelnemers", "", null, null).Build()); await messageInChannel.AddReactionAsync(Emote.Parse("<:green_check:671412276594475018>")); await messageInChannel.AddReactionAsync(Emote.Parse("<:blue_check:671413239992549387>")); await messageInChannel.AddReactionAsync(Emote.Parse("<:red_check:671413258468720650>")); var deelnemers = new Dictionary <ulong, string[]>(); //deelnemers.Add(deelnemersMessage.Id, new string[]{ "Testname", "Testname2" }); var f = messageInChannel.Id.ToString() + "0"; var generalFakeId = ulong.Parse(f); deelnemers.Add(deelnemersMessage.Id, new string[] { "Yeet" }); deelnemers.Add(generalFakeId, new string[] { generalChannel.Id.ToString() }); JsonExtension.InsertJsonData("../../../Resources/irleventdata.txt", messageInChannel.Id.ToString(), deelnemers); return(infoChannel); }
public static string ToJson(this object source) { if (source == null) { throw new ArgumentException("The source object cannot be null."); } return(JsonExtension.ToJSON(source)); }
/// <summary> /// 初期化參數 /// </summary> public override void InitParameter() { // 0:清零 1:不清零(保留隨機) IsShowSeconds = Convert.ToInt32(JsonExtension.GetPropertyByJson(Reserve, "IsShowSeconds")) == 0; // 時鐘學習板集合實例化 Formulas = new List <SchoolClockFormula>(); }
public TaskQueryParameter ConvertToTaskQueryParameter() { if (_parameter == null && !string.IsNullOrEmpty(Content)) { _parameter = JsonExtension.ToObject <TaskQueryParameter>(Content); } return(_parameter); }
/// <summary> /// 初期化參數 /// </summary> public override void InitParameter() { // 是否為縱向排列 QueueType = (JsonExtension.GetPropertyByJson(Reserve, "DivQueueType") == null) ? DivQueueType.Lengthways : (DivQueueType)Convert.ToInt32(JsonExtension.GetPropertyByJson(Reserve, "DivQueueType")); // 集合實例化 Currencys = new CurrencyLinkageFormula(); }
/// <summary> /// 初期化參數 /// </summary> public override void InitParameter() { object value = JsonExtension.GetPropertyByJson(Reserve, "Level"); Levels = Convert.ToString(value).Split(new char[] { ',' }, StringSplitOptions.None).Select(s => int.Parse(s)).ToArray(); // 集合實例化 Formulas = new List <GapFillingProblemsFormula>(); }
public void TestListFromJson() { var str = "[2,3,4,5]"; var l = JsonExtension.ParseJson <List <int> >(str); Assert.AreEqual(2, l[0]); Assert.AreEqual(5, l[3]); }
/// <summary> /// 初期化參數 /// </summary> public override void InitParameter() { object value = JsonExtension.GetPropertyByJson(Reserve, "Type"); Types = Convert.ToString(value).Split(new char[] { ',' }, StringSplitOptions.None).Select(s => int.Parse(s)).ToArray(); // 認識貨幣集合實例化 Formulas = new List <LearnCurrencyFormula>(); }
public void TestMixFromJson() { var str = "[{\"x\":1,\"y\":2},{\"x\":2,\"y\":1}]"; var l = JsonExtension.ParseJson <List <Point> >(str); Assert.AreEqual(1, l[0].X); Assert.AreEqual(1, l[1].Y); }
public void TestMixFromJson2() { var str = "[[1, 2],[2, 1]]"; var l = JsonExtension.ParseJson <List <List <int> > >(str); Assert.AreEqual(1, l[0][0]); Assert.AreEqual(1, l[1][1]); }
private void UpdateBeaconPosition(string deviceId, string payload) { var beacon = m_Beacons.FirstOrDefault(beacon2 => beacon2.DeviceId == deviceId); if (beacon != null) { beacon.GlobalPosition = JsonExtension.GlobalPositionFromJson(payload); } }
public void TestDictFromJson() { var str = "{\"one\":1,\"two\":2}"; var dict = JsonExtension.ParseJson <Dictionary <string, int> >(str); Assert.AreEqual(1, dict["one"]); Assert.AreEqual(2, dict["two"]); }
public InvokeReturnHandle <InvokeResult> InvokeAPI <T>(string[] opearteList, T t, Invoke.LoginResult loginResult, Context ctx, string formID, string model) { InvokeResult invokeResult = null; string input = null; string outopt = ""; foreach (string opearte in opearteList) { BussnessLog.WriteBussnessLog(default(T), model, "操作=" + opearte); if (Save.Equals(opearte)) { BussnessLog.WriteBussnessLog(default(T), model, "input json=" + JsonExtension.ToJSON(t)); invokeResult = InvokeCloudAPI.InvokeFunction(JsonExtension.ToJSON(t), loginResult.client, formID, Save, model); } else { input = JsonExtension.ToJSON(handleReturnMessage <InfoexceptAllocate>(invokeResult, opearte, model, ctx).CustomOpearteObject); BussnessLog.WriteBussnessLog(default(T), model, "input json=" + input); invokeResult = InvokeCloudAPI.InvokeFunction(input, loginResult.client, formID, opearte, model); } if (model.Equals("voucher") || model.Equals("payable") || model.Equals("receivable") || model.Equals("otherpayable") || model.Equals("otherrecable")) { InvokeReturnHandle <InvokeResult> result = handleReturnMessage <InvokeResult>(invokeResult, opearte, model, ctx); if (result.CustomOpearteObject.Result.ResponseStatus.IsSuccess) { BussnessLog.WriteBussnessLog(default(T), model, "操作=" + opearte + "成功!"); } else { BussnessLog.WriteBussnessLog(default(T), model, "操作=" + opearte + "失败!"); } return(result); } if (!handleReturnMessage <InfoexceptAllocate>(invokeResult, opearte, model, ctx).ReturnResult) { outopt = opearte; BussnessLog.WriteBussnessLog(default(T), model, "操作=" + opearte + "失败!"); InvokeReturnHandle <InvokeResult> aresult = new InvokeReturnHandle <InvokeResult>(); aresult.ReturnResult = false; aresult.CustomOpearteObject = invokeResult; return(aresult); } else { BussnessLog.WriteBussnessLog(default(T), model, "操作=" + opearte + "成功!"); } } InvokeReturnHandle <InvokeResult> a = new InvokeReturnHandle <InvokeResult>(); a.ReturnResult = true; a.CustomOpearteObject = invokeResult; return(a); throw new NotImplementedException(); }
public override void BeforeStartup() { //加载本地配置 ServiceHost.ConfModel = JsonExtension.GetDefKey(SysConf.MainConfigFile, "BWSI", new HttpConfModel()); if (ServiceHost.ConfModel.IsLog) { ServiceHost.Loged += Logger.Net.Info; ServiceHost.ErrorLoged += Logger.Net.Error; } }
/// <summary> /// 发送消息 /// </summary> /// <param name="getTokenUrl">获取微信公众号token的url;例:https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={0}&secret={1} </param> /// <param name="sendMsgUrl">发送模板消息的url;例:https://api.weixin.qq.com/cgi-bin/message/template/send?access_token={0} </param> /// <param name="appid">微信公众号的appid</param> /// <param name="secret">秘钥</param> /// <param name="tempJsonData">消息模板</param> /// <returns></returns> public static ResultJson <bool> Send(string getTokenUrl, string sendMsgUrl, string appid, string secret, string tempJsonData) { var result = new ResultJson <bool>() { code = 0, message = "发送失败", data = false }; try { #region 获取Token string requstUrl = string.Format(getTokenUrl, appid, secret); WebRequest request = WebRequest.Create(requstUrl); request.Method = "Post"; WebResponse response = request.GetResponse(); Stream stream = response.GetResponseStream(); Encoding encode = Encoding.UTF8; StreamReader reader = new StreamReader(stream, encode); string detail = reader.ReadToEnd(); var jd = JsonExtension.ToModel <WXApi>(detail) as WXApi; string token = (string)jd.access_token; #endregion #region 组装信息,推送 sendMsgUrl = string.Format(sendMsgUrl, token); var responseData = GetResponseData(tempJsonData, sendMsgUrl); if (responseData.code == 1) { ResponseModel model = JsonExtension.ToModel <ResponseModel>(responseData.data) as ResponseModel; if (model != null && model.errcode == 0) { result.code = 1; result.data = true; result.message = "发送成功"; return(result); } else { result.message = model == null ? "发送失败" : model.errmsg; return(result); } } else { return(result); } #endregion } catch (Exception ex) { return(result); } }
public bool SendMessage(string ip, object message) { if (message == null || !(message is BaseMessage)) { return(false); } byte[] data = ConstructData(message); Send(ip, data, 0, data.Length); OnSendMessage?.Invoke(ip, 0, 0, $"{JsonExtension.ToJSON(message)}"); return(true); }
private static async Task GetBeaconPosition(string deviceId) { GlobalPosition position; lock (Settings.Default.BeaconPositions) { Settings.Default.BeaconPositions.TryGetValue(deviceId, out position); } await m_NetClient.PublishAsync($"{deviceId}/global_position", JsonExtension.GlobalPositionToJson(position)); }