Exemple #1
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="sysEffects"></param>
 /// <param name="mqEffects"></param>
 public SchCore(SysEffects sysEffects, MqEffects mqEffects)
 {
     UnityIocService.AssertIsFirstInject(GetType());
     this.sysEffects = sysEffects;
     this.mqEffects  = mqEffects;
     Logger          = LoggerHelper.CreateLogger(GetType().ToString());
 }
        public void TestLoggerEncryption()
        {
            var     result          = LoggerHelper.CreateLogger("Deim Vadder sein Service", null, null);
            var     logger          = result.logger;
            dynamic logResult       = new ExpandoObject();
            bool    exceptionThrown = false;

            try
            {
                LoggerHelper.CreateTraceObject("das ist ein verschlüsselter test", true, "Köaäasdaspfe");
            }
            catch (FormatException)
            {
                exceptionThrown = true;
            }
            Assert.True(exceptionThrown);
            var keyPair     = PublicKeyBox.GenerateKeyPair();
            var traceObject = LoggerHelper.CreateTraceObject("das ist ein verschlüsselter test", true, Convert.ToBase64String(keyPair.PublicKey));

            logger.LogTrace(traceObject);
            var message = result.loggerProvider.Messages[0].Message;

            Encrypter       dec     = new AsymmetricEncrypter(keyPair.PrivateKey);
            JToken          content = JObject.Parse(message).GetValue("Content");
            EncryptedObject eo      = JsonConvert.DeserializeObject <EncryptedObjectPublicKeyBox>(content.ToString());
            BusinessObject  bo      = dec.Decrypt(eo);

            Assert.NotNull(bo);
            Assert.Equal(1, bo.VersionStruktur);
            LogObject lo = bo as LogObject;

            Assert.Equal("das ist ein verschlüsselter test", lo.LogMessage);
        }
Exemple #3
0
 /// <summary>
 /// 决定「设置」菜单是否显示
 /// </summary>
 public HomeViewModel()
 {
     Logger = LoggerHelper.CreateLogger(GetType().ToString());
     if (HmiConfig.IsDevUserEnv)
     {
         //SettingViewVisibility = Visibility.Visible;
     }
 }
Exemple #4
0
 /// <summary>
 /// 请在配置文件初始化后调用
 /// </summary>
 public void Init()
 {
     Logger        = LoggerHelper.CreateLogger(GetType().ToString());
     hookExecutors = new Dictionary <string, Action <AppState, IAction> >();
     hookExecutors[HookActions.HACK_APP_SKULL_VIEW]   = hackSkullView;
     hookExecutors[HookActions.RESCUE_APP_SKULL_VIEW] = rescueSkullView;
     hookExecutors[HookActions.DANGER_DAMAGE_APP]     = dangerDamageApp;
     App.Store.Subscribe(hookExecutors);
 }
Exemple #5
0
 /// <summary>
 /// 程序初始化完毕之后才订阅打印日志
 /// </summary>
 void initSubscribe()
 {
     Logger = LoggerHelper.CreateLogger("App");
     //减缓频率的日志输出初始化
     MuffleLogActions.ForEach(a => {
         MuffleLogDict[a] = new Mufflog();
     });
     Store.Subscribe(logDebugActions);
 }
Exemple #6
0
 public DbEffects()
 {
     UnityIocService.AssertIsFirstInject(GetType());
     MongoService = MongoHelper.GetMongoService();
     initUploadCpmsInfluxDb();
     initUploadDocMongo();
     initUploadDocManyMongo();
     Logger = LoggerHelper.CreateLogger(GetType().ToString());
 }
        public void TestLoggerBasic()
        {
            var result      = LoggerHelper.CreateLogger("Dei Mudder sein Service", null, null);
            var logger      = result.logger;
            var traceObject = LoggerHelper.CreateTraceObject("das ist ein test");

            logger.LogTrace(traceObject);
            Assert.Single(result.loggerProvider.Messages);
            Assert.Equal("Dei Mudder sein Service", result.loggerProvider.Messages[0].Category);
            Assert.Contains("das ist ein test", result.loggerProvider.Messages[0].Message);
        }
        public async Task Should_Not_Dispatch_Unsubscribe_Message_When_Action_Is_Not_Unsubscribe()
        {
            var mockData = GetWebHookSucceededMock("anythingelse");

            var request = FunctionRequestHelper.CreateHttpRequest(null, null, GetBodyFromMock(mockData));

            var http     = new WebhookFunction(_queueWrapperMock.Object);
            var response = (StatusCodeResult)await http.Run(request, LoggerHelper.CreateLogger());

            _queueWrapperMock.Verify(x => x.SendUnsubscribeMessage(It.IsAny <WebhookModel>()), Times.Never());
            Assert.AreEqual(response.StatusCode, 200);
        }
        public async Task Should_Dispatch_Unsubscribe_Message_When_Action_Is_Unsubscribe_And_Status_Is_Valid()
        {
            var mockData = GetWebHookSucceededMock(WebhookActionType.Unsubscribe);

            var request = FunctionRequestHelper.CreateHttpRequest(null, null, GetBodyFromMock(mockData));

            var http     = new WebhookFunction(_queueWrapperMock.Object);
            var response = (StatusCodeResult)await http.Run(request, LoggerHelper.CreateLogger());

            _queueWrapperMock.Verify(x => x.SendUnsubscribeMessage(It.Is <WebhookModel>(x => JsonConvert.SerializeObject(x) == JsonConvert.SerializeObject(mockData))), Times.Once);
            Assert.AreEqual(response.StatusCode, 200);
        }
Exemple #10
0
 /// <summary>
 /// 只有配置文件加载完成才能调用此初始化
 /// </summary>
 public void Init()
 {
     Logger = LoggerHelper.CreateLogger(GetType().ToString());
     foreach (var pair in MachineConfig.MachineDict)
     {
         onlineFloatDict[pair.Key] = new ConcurrentDictionary <int, float>();
     }
     AlarmLightsStateDict = App.Store.GetState().CpmState.AlarmLightsStateDict;
     actionExecutors[AlarmActions.OPEN_ALARM_LIGHTS]      = doOpenAlarmLights;
     actionExecutors[AlarmActions.CLOSE_ALARM_LIGHTS]     = doCloseAlarmLights;
     actionExecutors[OeeActions.UPDATE_OEE_PARTIAL_VALUE] = whenOeeUpdated;
     App.Store.Subscribe(actionExecutors);
 }
Exemple #11
0
        /// <summary>
        /// 初始化上面的 Effect
        /// </summary>
        /// <param name="sysService"></param>
        public SysEffects(SysService sysService)
        {
            UnityIocService.AssertIsFirstInject(GetType());
            Logger = LoggerHelper.CreateLogger(GetType().ToString());
            //启动http解析服务
            StartHttpSystem = App.Store.asyncAction <SysActions.StartHttpSystem, bool>(
                async(dispatch, getState, instance) => {
                dispatch(instance);
                var isStarted = await sysService.StartHttpSystem(instance);
                if (isStarted)
                {
                    App.Store.Dispatch(new SysActions.StartHttpSystemSuccess());
                }
                else
                {
                    App.Store.Dispatch(new SysActions.StartHttpSystemFailed());
                }
                return(isStarted);
            });
            //启动关闭显示器定时器
            StartCloseScreenTimer = App.Store.asyncActionVoid <SysActions.StartCloseScreenTimer>(
                async(dispatch, getState, instance) => {
                dispatch(instance);
                await Task.Run(() => {
                    if (CloseScrrenTimer != null)
                    {
                        YUtil.RecoveryTimeout(CloseScrrenTimer);
                    }
                    else
                    {
                        CloseScrrenTimer = YUtil.SetInterval(instance.Interval, () => {
                            App.Store.Dispatch(new SysActions.CloseScreen());
                        });
                    }
                });
            });

            //停止关闭显示器定时器
            StopCloseScrenTimer = App.Store.asyncActionVoid <SysActions.StopCloseScreenTimer>(
                async(dispatch, getState, instance) => {
                dispatch(instance);
                await Task.Run(() => {
                    if (CloseScrrenTimer != null)
                    {
                        YUtil.ClearTimeout(CloseScrrenTimer);
                    }
                });
            });
        }
Exemple #12
0
 /// <summary>
 /// 异步启动服务,将在线参数字典与AppState全局字典进行绑定
 /// </summary>
 /// <param name="ip"></param>
 /// <param name="port"></param>
 /// <returns></returns>
 public Task StartAsync(string ip, int port)
 {
     return(Task.Run(() => {
         if (SmParamTcp == null)
         {
             SmParamTcp = new YSmParamTcp(ip, port, LoggerHelper.CreateLogger("YSmParamTcp"));
             SmParamTcp.OnDataReceivedAction += whenSmActived;
             OnlineCpmDict = App.Store.GetState().CpmState.OnlineCpmsDict;
             //检查超时
             YUtil.SetInterval(HmiConfig.CpmTimeout, () => {
                 checkCpmTimeout(HmiConfig.CpmTimeout);
             });
         }
         SmParamTcp.Start();
     }));
 }
Exemple #13
0
        public Startup(IHostingEnvironment env, ILoggerFactory loggerFactory)
        {
            #region  logger
            this.loggerFactory = loggerFactory;
            var config = new LoggerHelper().GetLoggerConfig();
            Log.Logger = config.CreateLogger();
            #endregion


            #region config
            var builder = new ConfigurationBuilder()
                          .SetBasePath(Directory.GetCurrentDirectory())
                          .AddJsonFile("appsettings.json");
            Configuration = builder.Build();
            #endregion
        }
        public async Task TestGetAll()
        {
            var result = LoggerHelper.CreateLogger("Dei Mudder sein Service", null, null);
            var logger = result.logger;
            MeterMonitorHelper mmrHelper = new MeterMonitorHelper(logger, new System.Net.Http.HttpClient()
            {
                BaseAddress = new Uri("https://hfapi-stage.azure-api.net/metermonitor/"), Timeout = TimeSpan.FromMinutes(10)
            });
            string token          = "";
            string apiKey         = "";
            var    top1000Results = await mmrHelper.GetMeterMonitors(token, apiKey, new EshDataExchangeFormats.lookup.BOBackendId("HOCHFREQUENZ_BASIC_AUTH"), limit : 1000);

            //Assert.Equal(1000, top1000Results.Count);
            var allResults = await mmrHelper.GetMeterMonitors(token, apiKey, new EshDataExchangeFormats.lookup.BOBackendId("HOCHFREQUENZ_BASIC_AUTH"), withError : false);

            //Assert.True(allResults.Count> 70000);
        }
Exemple #15
0
        private PaymentController CreatePaymentController(Guid merchantId, IPaymentRepository paymentRepository, IBankOfIrelandClient bankOfIrelandClient, IDatetimeService datetimeService)
        {
            var bankOfIrelandPaymentRequestMapper = new BankOfIrelandPaymentRequestMapper();
            var bankOfIrelandAcquiringBankService = new BankOfIrelandAcquiringBankService(bankOfIrelandClient, bankOfIrelandPaymentRequestMapper, paymentRepository);
            var acquirerBankSelectionService      = new AcquirerBankSelectionService();

            var createCardPaymentService = new CreateCardPaymentService(bankOfIrelandAcquiringBankService, paymentRepository, acquirerBankSelectionService);

            var cardPaymentResponseMapper = new CardPaymentResponseMapper();
            var paymentService            = new PaymentService(createCardPaymentService, cardPaymentResponseMapper, null, null, null);

            var cardValidator = new CardValidator(datetimeService);
            var controller    = new PaymentController(LoggerHelper.CreateLogger <PaymentController>(), paymentService, cardValidator);

            controller.ControllerContext = ControllerContextFactory.CreateControllerContextForClient(merchantId);

            return(controller);
        }
Exemple #16
0
        /// <summary>
        /// 初始化各个 Effect
        /// </summary>
        /// <param name="mqService"></param>
        public MqEffects(MqService mqService)
        {
            UnityIocService.AssertIsFirstInject(GetType());

            activeMq       = ActiveMqHelper.GetActiveMqService();
            Logger         = LoggerHelper.CreateLogger(GetType().ToString());
            this.mqService = mqService;
            initSchTaskEffect();
            initUploadCpmsEffect();
            initStartUploadCpmsIntervalEffect();
            initStartListenScanMaterial();
            initUploadAlarm();
            initUploadSchTaskManu();
            initStartListenEmpRfid();
            initStartListenAxisRfid();
            initUploadDpms();
            initCallSystem();
            initStartListenCmd();
            initUploadElecPower();
        }
        public async Task TestMeterMonitorHelperMocker()
        {
            string json;

            using (StreamReader r = new StreamReader("test_data/getall-16121856537571.json"))
            {
                json = await r.ReadToEndAsync();
            }
            var handlerMock = new Mock <HttpMessageHandler>();
            var response    = new HttpResponseMessage
            {
                StatusCode = HttpStatusCode.OK,
                Content    = new StringContent(json),
            };

            handlerMock.Protected()
            .Setup <Task <HttpResponseMessage> >(
                "SendAsync",
                ItExpr.IsAny <HttpRequestMessage>(),
                ItExpr.IsAny <CancellationToken>()
                )
            .ReturnsAsync(response);

            var httpClient = new HttpClient(handlerMock.Object)
            {
                BaseAddress = new Uri("https://fake-url/metermonitor/"),
                Timeout     = TimeSpan.FromMinutes(10)
            };
            var result = LoggerHelper.CreateLogger("Dei Mudder sein Service", null, null);
            var logger = result.logger;
            MeterMonitorHelper mmrHelper = new MeterMonitorHelper(logger, httpClient);
            string             token     = "";
            string             apiKey    = "";
            var allResults = await mmrHelper.GetMeterMonitors(token, apiKey,
                                                              new EshDataExchangeFormats.lookup.BOBackendId("HOCHFREQUENZ_BASIC_AUTH"), withError : true);

            Assert.True(allResults.Count > 20000);
            handlerMock.Protected().Verify("SendAsync", Times.Once(),
                                           ItExpr.Is <HttpRequestMessage>(mr => mr.Headers.Contains(HeaderNames.BACKEND_ID) && mr.RequestUri.ToString().Contains("withError")), ItExpr.IsAny <CancellationToken>());
        }
Exemple #18
0
 public virtual async Task SetUp()
 {
     _mockLogger = LoggerHelper.CreateLogger <DeviceCreateOrUpdateRequestedConsumer>();
 }
 public virtual async Task SetUp()
 {
     _mockLogger = LoggerHelper.CreateLogger <EventClusterCloseRequestedConsumer>();
 }
Exemple #20
0
 /// <summary>
 /// 初始化命令解析器、日志
 /// </summary>
 public SysService()
 {
     UnityIocService.AssertIsFirstInject(GetType());
     Logger = LoggerHelper.CreateLogger(GetType().ToString());
     initCmdExecers();
 }
Exemple #21
0
 public PipeEffects()
 {
     UnityIocService.AssertIsFirstInject(GetType());
     Logger = LoggerHelper.CreateLogger(GetType().ToString());
     initWriteStringAsync();
 }
 public virtual async Task SetUp()
 {
     _createdOrUpdatedDeviceTwinModel = default(DeviceTwinModel);
     _mockLogger = LoggerHelper.CreateLogger <DeviceCreateOrUpdateRequestedConsumer>();
 }
Exemple #23
0
        public static SimpleReducer <State> Create()
        {
            return(new SimpleReducer <State>().When <CpmActions.Init>((state, action) => {
                state.OnlineCpmsDict = new Dictionary <string, IDictionary <int, Cpm> >();
                state.UpdatedCpmsDiffDict = new Dictionary <string, IDictionary <int, Cpm> >();
                state.UpdatedCpmsAllDict = new Dictionary <string, List <Cpm> >();
                state.NoteMeterDict = new Dictionary <string, float>();
                state.SparkDiffDict = new Dictionary <string, float>();
                state.MachineStateDict = new ConcurrentDictionary <string, ObservableCollection <MachineState> >();
                state.MachineDebugStateDict = new Dictionary <string, ObservableCollection <MachineDebugState> >();
                state.Com485StatusDict = new ConcurrentDictionary <string, Com485SingleStatus>();
                state.StateSpeedDict = new ConcurrentDictionary <string, float>();
                state.PreStateSpeedDict = new Dictionary <string, float>();
                state.AlarmLightsStateDict = new ConcurrentDictionary <string, AlarmLightsState>();
                state.MachineStateLockDict = new Dictionary <string, object>();
                state.Logger = LoggerHelper.CreateLogger(typeof(CpmReducer).ToString());
                foreach (var pair in MachineConfig.MachineDict)
                {
                    var machineCode = pair.Key;
                    var machine = pair.Value;
                    var cpmsDict = new ConcurrentDictionary <int, Cpm>();
                    foreach (var mPair in machine.CodeToAllCpmDict)
                    {
                        var info = mPair.Value;
                        cpmsDict[mPair.Key] = new Cpm()
                        {
                            Name = info.Name,
                            Unit = info.Unit,
                            Code = info.Code,
                            Value = "暂无",
                            ValueType = SmParamType.Unknown
                        };
                    }

                    //几个时间保存
                    cpmsDict[DefinedParamCode.DutyTime] = new Cpm()
                    {
                        Code = DefinedParamCode.DutyTime, ValueType = SmParamType.Signal, Value = 0f
                    };
                    cpmsDict[DefinedParamCode.RunTime] = new Cpm()
                    {
                        Code = DefinedParamCode.RunTime, ValueType = SmParamType.Signal, Value = 0f
                    };
                    cpmsDict[DefinedParamCode.StopTime] = new Cpm()
                    {
                        Code = DefinedParamCode.StopTime, ValueType = SmParamType.Signal, Value = 0f
                    };
                    cpmsDict[DefinedParamCode.Od] = new Cpm()
                    {
                        Code = DefinedParamCode.Od, Value = "暂无"
                    };
                    cpmsDict[DefinedParamCode.NoteMeter] = new Cpm()
                    {
                        Code = DefinedParamCode.NoteMeter, Value = "暂无"
                    };

                    state.OnlineCpmsDict[machineCode] = cpmsDict;
                    state.MachineStateDict[machineCode] = new ObservableCollection <MachineState>();
                    state.StateSpeedDict[machineCode] = 0f;
                    state.NoteMeterDict[machineCode] = 0f;
                    state.PreStateSpeedDict[machineCode] = 0f;
                    state.SparkDiffDict[machineCode] = 0f;
                    state.AlarmLightsStateDict[machineCode] = AlarmLightsState.Off;
                    state.MachineStateLockDict[machineCode] = new object();
                }

                //初始化所有ip的通讯状态为未知
                foreach (var pair in MachineConfig.IpToMachineCodeDict)
                {
                    var ip = pair.Key;
                    state.Com485StatusDict[ip] = new Com485SingleStatus()
                    {
                        Status = SmSingleStatus.Ok, Time = DateTime.Now, Ip = ip
                    };
                }
                //恢复485状态「最后正常」时间值
                SqliteHelper.DoAsync(ctx => {
                    try {
                        var dict = ctx.Restore <IDictionary <string, Com485SingleStatus> >("com485");
                        if (dict != null)
                        {
                            foreach (var pair in dict)
                            {
                                if (state.Com485StatusDict.TryGetValue(pair.Key, out var status))
                                {
                                    status.LastSuccTime = pair.Value.LastSuccTime;
                                }
                            }
                        }
                    } catch (Exception e) {
                        App.Logger.Error("恢复 485 状态异常...", e);
                    }
                });
                //一分钟ping一次模块的ip,更新其离线状态
                updateCom485Interval(state, 60);
                return state;
                //更新ip的485状态为正常
            }).When <CpmActions.CpmIpActivted>((state, action) => {
                //如果上个状态不是Error
                //或者Erro状态过去已经超过1分钟了
                //则认为该活动Ip的状态为正常
                //因为在传送Error状态的时候Ip也会Actived
                if (state.Com485StatusDict[action.Ip].Status != SmSingleStatus.Error ||
                    (state.Com485StatusDict[action.Ip].Status == SmSingleStatus.Error &&
                     (DateTime.Now - state.Com485StatusDict[action.Ip].Time).TotalSeconds > 60
                    ))
                {
                    state.Com485StatusDict[action.Ip].Status = SmSingleStatus.Ok;
                    state.Com485StatusDict[action.Ip].LastSuccTime = DateTime.Now;
                }
                state.Com485StatusDict[action.Ip].Time = DateTime.Now;
                return state;
                //某个ip激活,更新相应 ip 的状态
            }).When <CpmActions.UnregIpActived>((state, action) => {
                if (!state.Com485StatusDict.ContainsKey(action.Ip))
                {
                    state.Com485StatusDict[action.Ip] = new Com485SingleStatus()
                    {
                        Ip = action.Ip,
                        Time = DateTime.Now,
                        Status = SmSingleStatus.Unregistered
                    };
                    //该 ip 未注册
                }
                else
                {
                    state.Com485StatusDict[action.Ip].Status = SmSingleStatus.Unregistered;
                    state.Com485StatusDict[action.Ip].Time = DateTime.Now;
                }
                return state;
            }).
                   When <CpmActions.CpmUpdateDiff>((state, action) => {
                state.MachineCode = action.MachineCode;
                state.UpdatedCpmsDiffDict[state.MachineCode] = action.CpmsDict;
                return state;
            }).When <CpmActions.CpmUpdatedAll>((state, action) => {
                state.MachineCode = action.MachineCode;
                state.UpdatedCpmsAllDict[action.MachineCode] = action.Cpms;
                return state;
            }).When <CpmActions.NoteMeterAccept>((state, action) => {
                state.MachineCode = action.MachineCode;
                state.NoteMeterDict[state.MachineCode] = action.Meter;
                return state;
            }).When <CpmActions.SparkDiffAccept>((state, action) => {
                state.MachineCode = action.MachineCode;
                state.SparkDiffDict[action.MachineCode] = action.Spark;
                return state;
            }).When <CpmActions.StateSpeedAccept>((state, action) => {
                //更新机台状态
                lock (state.MachineStateLockDict[action.MachineCode]) {
                    return updateMachineState(action, state);
                }
            }
                                                  //更新ip的485状态
                                                  ).When <CpmActions.Com485SingleStatusAccept>((state, action) => {
                state.Com485StatusDict[action.Ip].Status = action.Status;
                state.Com485StatusDict[action.Ip].Time = DateTime.Now;
                return state;
            }));
        }
Exemple #24
0
        public static void Init()
        {
            if (!MapperInitialized)
            {
                Mapper.Initialize(cfg =>
                {
                    cfg.AddProfile <MappingProfile>();
                });
                Mapper.AssertConfigurationIsValid();
                MapperInitialized = true;
            }

            DBMockDevice.Init();
            DBMockEventCluster.Init();
            _DBDevices       = new InMemoryDBRepository <DeviceDAO>(DBMockDevice.DBDevices, LoggerHelper.CreateLogger <InMemoryDBRepository <DeviceDAO> >().Object);
            _DBEventClusters = new InMemoryDBRepository <EventClusterDAO>(DBMockEventCluster.DBEventClusters, LoggerHelper.CreateLogger <InMemoryDBRepository <EventClusterDAO> >().Object);
        }
Exemple #25
0
 public MqService()
 {
     UnityIocService.AssertIsFirstInject(GetType());
     Logger = LoggerHelper.CreateLogger(GetType().ToString());
 }
Exemple #26
0
 /// <summary>
 /// 初始化 日志、事件处理器
 /// </summary>
 public OeeCore()
 {
     UnityIocService.AssertIsFirstInject(GetType());
     Logger = LoggerHelper.CreateLogger(GetType().ToString());
     actionExecutors[CpmActions.OEE_SPEED_ACCEPT] = whenOeeSpeedAccept;
 }