/// <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); }
/// <summary> /// 决定「设置」菜单是否显示 /// </summary> public HomeViewModel() { Logger = LoggerHelper.CreateLogger(GetType().ToString()); if (HmiConfig.IsDevUserEnv) { //SettingViewVisibility = Visibility.Visible; } }
/// <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); }
/// <summary> /// 程序初始化完毕之后才订阅打印日志 /// </summary> void initSubscribe() { Logger = LoggerHelper.CreateLogger("App"); //减缓频率的日志输出初始化 MuffleLogActions.ForEach(a => { MuffleLogDict[a] = new Mufflog(); }); Store.Subscribe(logDebugActions); }
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); }
/// <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); }
/// <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); } }); }); }
/// <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(); })); }
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); }
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); }
/// <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>()); }
public virtual async Task SetUp() { _mockLogger = LoggerHelper.CreateLogger <DeviceCreateOrUpdateRequestedConsumer>(); }
public virtual async Task SetUp() { _mockLogger = LoggerHelper.CreateLogger <EventClusterCloseRequestedConsumer>(); }
/// <summary> /// 初始化命令解析器、日志 /// </summary> public SysService() { UnityIocService.AssertIsFirstInject(GetType()); Logger = LoggerHelper.CreateLogger(GetType().ToString()); initCmdExecers(); }
public PipeEffects() { UnityIocService.AssertIsFirstInject(GetType()); Logger = LoggerHelper.CreateLogger(GetType().ToString()); initWriteStringAsync(); }
public virtual async Task SetUp() { _createdOrUpdatedDeviceTwinModel = default(DeviceTwinModel); _mockLogger = LoggerHelper.CreateLogger <DeviceCreateOrUpdateRequestedConsumer>(); }
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; })); }
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); }
public MqService() { UnityIocService.AssertIsFirstInject(GetType()); Logger = LoggerHelper.CreateLogger(GetType().ToString()); }
/// <summary> /// 初始化 日志、事件处理器 /// </summary> public OeeCore() { UnityIocService.AssertIsFirstInject(GetType()); Logger = LoggerHelper.CreateLogger(GetType().ToString()); actionExecutors[CpmActions.OEE_SPEED_ACCEPT] = whenOeeSpeedAccept; }