Example #1
0
        /// <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);
        }
Example #2
0
        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);
        }
Example #3
0
        /// <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);
        }
Example #4
0
        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);
        }
Example #5
0
 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);
     }
 }
Example #6
0
        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);
        }
Example #7
0
 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);
     }
 }
Example #8
0
        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;
            }
        }
Example #9
0
        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);
        }
Example #10
0
        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();
        }
Example #11
0
        public void TestEnumFromJson()
        {
            string str = "{\"Id\": 2, \"Code\": \"Byte\"}";
            var    h   = JsonExtension.ParseJson <HaveEnum>(str);

            Assert.AreEqual(TypeCode.Byte, h.Code);
        }
Example #12
0
        /// <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>();
        }
Example #14
0
        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);
        }
Example #15
0
 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>();
        }
Example #17
0
 public TaskQueryParameter ConvertToTaskQueryParameter()
 {
     if (_parameter == null && !string.IsNullOrEmpty(Content))
     {
         _parameter = JsonExtension.ToObject <TaskQueryParameter>(Content);
     }
     return(_parameter);
 }
Example #18
0
        /// <summary>
        /// 初期化參數
        /// </summary>
        public override void InitParameter()
        {
            // 是否為縱向排列
            QueueType = (JsonExtension.GetPropertyByJson(Reserve, "DivQueueType") == null) ? DivQueueType.Lengthways : (DivQueueType)Convert.ToInt32(JsonExtension.GetPropertyByJson(Reserve, "DivQueueType"));

            // 集合實例化
            Currencys = new CurrencyLinkageFormula();
        }
Example #19
0
        /// <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>();
        }
Example #20
0
        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>();
        }
Example #22
0
        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);
        }
Example #23
0
        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]);
        }
Example #24
0
        private void UpdateBeaconPosition(string deviceId, string payload)
        {
            var beacon = m_Beacons.FirstOrDefault(beacon2 => beacon2.DeviceId == deviceId);

            if (beacon != null)
            {
                beacon.GlobalPosition = JsonExtension.GlobalPositionFromJson(payload);
            }
        }
Example #25
0
        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"]);
        }
Example #26
0
        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();
        }
Example #27
0
 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;
     }
 }
Example #28
0
        /// <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);
            }
        }
Example #29
0
 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);
 }
Example #30
0
        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));
        }