public void SendEventAsync(TypedEvent typedEvent) { var ipcEvent = new IpcEvent { RequestId = _requestIdFactory.GetNextId(), Protocol = IpcProtocols.TypedMessage, Data = typedEvent }; _responseQueue.Enqueue(ipcEvent); }
private void TypedRequestProcessProxy_EventReceived(TypedEvent typedEvent) { DispatchFileSystemTreeComputing(typedEvent); DispatchFileSystemTreeComputed(typedEvent); DispatchSearchEngineFilesLoading(typedEvent); DispatchSearchEngineFilesLoadingProgress(typedEvent); DispatchSearchEngineFilesLoaded(typedEvent); }
private void DispatchProgressReport(TypedEvent typedEvent) { var progressReportEvent = typedEvent as ProgressReportEvent; if (progressReportEvent == null) return; _synchronizationContextProvider.UIContext.Post(() => _statusBar.ReportProgress(progressReportEvent.DisplayText, progressReportEvent.Completed, progressReportEvent.Total)); }
protected virtual void OnEventReceived(TypedEvent obj) { var handler = EventReceived; if (handler != null) { handler(obj); } }
private void TypedRequestProcessProxy_OnEventReceived(TypedEvent typedEvent) { DispatchFileSystemTreeScanStarted(typedEvent); DispatchFileSystemTreeScanFinished(typedEvent); DispatchSearchEngineFilesLoading(typedEvent); DispatchSearchEngineFilesLoadingProgress(typedEvent); DispatchSearchEngineFilesLoaded(typedEvent); DispatchIndexingStateChanged(typedEvent); }
public static void AddPayloadDetailsRow <TPayload>(StringBuilder sb, TypedEvent <TPayload> evt) { foreach (PropertyInfo p in typeof(TPayload).GetProperties()) { object value = p.GetValue(evt.Payload, null); sb.AppendFormat("{0} = {1}, ", p.Name, ((value != null) ? value.ToString() : "NULL")); } }
private Product(TypedEvent <ProductCreated> initialEvent) { Created = initialEvent.EventDateTime; LastUpdate = initialEvent.EventDateTime; Identifier = initialEvent.Event.ProductIdentifier; ProductName = initialEvent.Event.ProductName; RegisterEvent <ProductNameChanged>(ProductNameChangedEventHandler); }
private void DispatchProgressReport(TypedEvent typedEvent) { var @event = typedEvent as ProgressReportEvent; if (@event != null) { Wpf.WpfUtilities.Post(this, () => _statusBar.ReportProgress(@event.DisplayText, @event.Completed, @event.Total)); } }
private void ProxyOnEventReceived(TypedEvent typedEvent) { var @event = typedEvent as FileSystemTreeComputed; if (@event != null) { _delayedOperationProcessor.Post(new DelayedOperation { Id = "FetchFileSystemTree", Delay = TimeSpan.FromSeconds(0.1), Action = FetchFileSystemTree }); } }
private void DispatchProgressReport(TypedEvent typedEvent) { var progressReportEvent = typedEvent as ProgressReportEvent; if (progressReportEvent == null) { return; } _synchronizationContextProvider.DispatchThreadContext.Post(() => _statusBar.ReportProgress(progressReportEvent.DisplayText, progressReportEvent.Completed, progressReportEvent.Total)); }
private void DispatchIndexingStateChanged(TypedEvent typedEvent) { var @event = typedEvent as IndexingServerStateChangedEvent; if (@event != null) { WpfUtilities.Post(_control, () => { Logger.LogInfo("Indexing state has changed to \"{0}\".", @event.ServerStatus); OnIndexingStateChanged(); }); } }
private void DispatchSearchEngineFilesLoading(TypedEvent typedEvent) { var @event = typedEvent as SearchEngineFilesLoading; if (@event != null) { Wpf.WpfUtilities.Post(this, () => { Logger.Log("Search engine is loading files on server."); _progressBarTracker.Start(OperationsIds.FilesLoading, "Loading files contents from file system."); }); } }
private void DispatchSearchEngineFilesLoading(TypedEvent typedEvent) { var evt = typedEvent as SearchEngineFilesLoading; if (evt != null) { WpfUtilities.Post(_control, () => { Logger.LogInfo("Search engine is loading file database on server."); _progressBarTracker.Start(OperationsIds.FilesLoading, "Loading files contents from file system."); }); } }
private void DispatchSearchEngineFilesLoadingProgress(TypedEvent typedEvent) { var evt = typedEvent as SearchEngineFilesLoadingProgress; if (evt != null) { WpfUtilities.Post(_control, () => { OnFilesLoadingProgress(); Logger.LogInfo("Search engine has produced intermediate file database index on server."); }); } }
private void DispatchFileSystemTreeScanStarted(TypedEvent typedEvent) { var @event = typedEvent as FileSystemScanStarted; if (@event != null) { WpfUtilities.Post(_control, () => { Logger.LogInfo("FileSystemTree is being computed on server."); _progressBarTracker.Start(OperationsIds.FileSystemScanning, "Loading files and directory names from file system."); OnFileSystemTreeScanStarted(); }); } }
private void DispatchFileSystemTreeComputing(TypedEvent typedEvent) { var @event = typedEvent as FileSystemTreeComputing; if (@event != null) { Wpf.WpfUtilities.Post(this, () => { Logger.Log("FileSystemTree is being computed on server."); _progressBarTracker.Start(OperationsIds.FileSystemTreeComputing, "Loading files and directory names from file system."); ViewModel.FileSystemTreeComputing(); }); } }
private void ProxyOnEventReceived(TypedEvent typedEvent) { var evt = typedEvent as FileSystemScanFinished; if (evt != null) { if (evt.Error == null) { _delayedOperationExecutor.Post(new DelayedOperation { Id = "FetchFileSystemTree", Delay = TimeSpan.FromSeconds(0.1), Action = FetchFileSystemTree }); } } }
private void DispatchFileSystemTreeScanFinished(TypedEvent typedEvent) { var evt = typedEvent as FileSystemScanFinished; if (evt != null) { WpfUtilities.Post(_control, () => { _progressBarTracker.Stop(OperationsIds.FileSystemScanning); if (evt.IsReportableError()) { ReportServerError(evt.Error); return; } Logger.LogInfo("New FileSystemTree bas been computed on server: version={0}.", evt.NewVersion); }); } }
private void DispatchFileSystemTreeComputed(TypedEvent typedEvent) { var @event = typedEvent as FileSystemTreeComputed; if (@event != null) { WpfUtilities.Post(this, () => { _progressBarTracker.Stop(OperationsIds.FileSystemTreeComputing); if (@event.Error != null) { Controller.OnFileSystemTreeError(@event.Error); return; } Logger.LogInfo("New FileSystemTree bas been computed on server: version={0}.", @event.NewVersion); }); } }
private void DispatchSearchEngineFilesLoaded(TypedEvent typedEvent) { var @event = typedEvent as SearchEngineFilesLoaded; if (@event != null) { Wpf.WpfUtilities.Post(this, () => { _progressBarTracker.Stop(OperationsIds.FilesLoading); if (@event.Error != null) { ViewModel.SetErrorResponse(@event.Error); return; } Logger.Log("Search engine is done loading files on server."); }); } }
/// <summary> /// Given an untyped PointEvent generate a textual representation suitable for console, /// trace, etc, output. /// </summary> /// <param name="currEvent">An untyped PointEvent</param> /// <returns>A formatted string of the contents of the PointEvent</returns> public static string FormatEventForDisplay <TPayload>(this TypedEvent <TPayload> evt, bool verbose) { StringBuilder sb = new StringBuilder(); DateTimeOffset startTime = DateTimeOffset.MinValue; DateTimeOffset endTime = DateTimeOffset.MinValue; if (evt is PointEvent <TPayload> ) { startTime = ((PointEvent <TPayload>)evt).StartTime; sb.AppendFormat("POINT({0}) ", startTime.ToString("hh:mm:ss.fff")); } if (evt is IntervalEvent <TPayload> ) { startTime = ((IntervalEvent <TPayload>)evt).StartTime; endTime = ((IntervalEvent <TPayload>)evt).EndTime; sb.AppendFormat("INTERVAL({0} - {1}) ", startTime.ToString("hh:mm:ss.fff"), endTime.ToString("hh:mm:ss.fff")); } if (evt is EdgeEvent <TPayload> ) { startTime = ((EdgeEvent <TPayload>)evt).StartTime; endTime = DateTimeOffset.MaxValue; sb.AppendFormat("EDGE({0} - ?) ", startTime.ToString("hh:mm:ss.fff")); } if (EventKind.Cti == evt.EventKind) { sb.AppendFormat(" CTI - start time: {0}", startTime); } else if (verbose) { AddPayloadDetailsList <TPayload>(sb, evt); } else { AddPayloadDetailsRow <TPayload>(sb, evt); } return(sb.ToString()); }
private void DispatchSearchEngineFilesLoaded(TypedEvent typedEvent) { var evt = typedEvent as SearchEngineFilesLoaded; if (evt != null) { WpfUtilities.Post(_control, () => { _progressBarTracker.Stop(OperationsIds.FilesLoading); OnFilesLoaded(evt.TreeVersion); if (evt.IsReportableError()) { ReportServerError(evt.Error); return; } Logger.LogInfo("Search engine is done loading file database on server."); }); } }
private void DispatchFileSystemTreeComputed(TypedEvent typedEvent) { var @event = typedEvent as FileSystemTreeComputed; if (@event != null) { Wpf.WpfUtilities.Post(this, () => { _progressBarTracker.Stop(OperationsIds.FileSystemTreeComputing); if (@event.Error != null) { ViewModel.SetErrorResponse(@event.Error); return; } Logger.Log("New FileSystemTree bas been computed on server: version={0}.", @event.NewVersion); FetchFilesystemTree(); }); } }
private void DispatchSearchEngineFilesLoaded(TypedEvent typedEvent) { var @event = typedEvent as SearchEngineFilesLoaded; if (@event != null) { WpfUtilities.Post(this, () => { _progressBarTracker.Stop(OperationsIds.FilesLoading); Controller.OnFilesLoaded(@event.TreeVersion); if (@event.Error != null) { Controller.OnFileSystemTreeError(@event.Error); return; } Logger.LogInfo("Search engine is done loading file database on server."); }); } }
private Order(TypedEvent <OrderCreated> initialEvent) { _orderLines = new OrderLineCollection(this); Created = initialEvent.EventDateTime; LastUpdate = initialEvent.EventDateTime; OrderIdentifier = initialEvent.Event.OrderIdentifier; CustomerIdentifier = initialEvent.Event.CustomerIdentifier; CustomerName = initialEvent.Event.CustomerIdentifier.ToString(); RegisterEvent <OrderCustomerNameChanged>(OrderCustomerNameChangedEventHandler); // OrderLines RegisterEvent <OrderLineCreated>(OrderLineCreatedEventHandler); RegisterEvent <OrderLineRemoved>(OrderLineRemovedEventHandler); RegisterEvent <OrderLineQuantityAdjusted>(e => e.ForwardTo(_orderLines.Get(e.Event.OrderLineIdentifier))); }
protected virtual void OnEventReceived(TypedEvent obj) { EventReceived?.Invoke(obj); }
private void DispatchSearchEngineFilesLoading(TypedEvent typedEvent) { var @event = typedEvent as SearchEngineFilesLoading; if (@event != null) { Wpf.WpfUtilities.Post(this, () => { Controller.OnFilesLoading(); Logger.LogInfo("Search engine is loading file database on server."); _progressBarTracker.Start(OperationsIds.FilesLoading, "Loading files contents from file system."); }); } }
private void TypedRequestProcessProxy_EventReceived(TypedEvent typedEvent) { DispatchProgressReport(typedEvent); }
private void TypedRequestProcessProxy_OnEventReceived(TypedEvent typedEvent) { }
private void DispatchSearchEngineFilesLoadingProgress(TypedEvent typedEvent) { var @event = typedEvent as SearchEngineFilesLoadingProgress; if (@event != null) { Wpf.WpfUtilities.Post(this, () => { Controller.OnFilesLoadingProgress(); Logger.LogInfo("Search engine has produced intermediate file database index on server."); }); } }
private void DispatchFileSystemTreeComputing(TypedEvent typedEvent) { var @event = typedEvent as FileSystemTreeComputing; if (@event != null) { WpfUtilities.Post(this, () => { Logger.LogInfo("FileSystemTree is being computed on server."); _progressBarTracker.Start(OperationsIds.FileSystemTreeComputing, "Loading files and directory names from file system."); Controller.OnFileSystemTreeComputing(); }); } }