public async Task SubscribeAsync <T>(Func <T, Task> handler, SubscribeOptions subscribeOptions = null, CancellationToken cancellationToken = default(CancellationToken)) where T : class { InitProcess(); var topic = GetTopic(typeof(T)); ValidateSubscribe(topic); subscribeOptions = subscribeOptions ?? new SubscribeOptions(); var threadCount = subscribeOptions.ConsumerThreadCount; threadCount = threadCount > 0 ? threadCount : _options.DefaultConsumerThreadCount; AssertUtils.IsTrue(threadCount > 0, "消费者线程数必须大于0"); _logger.LogInformation($"订阅[{topic}],threadcount={threadCount}"); Func <MessageResult, Task> action = async message => { var realObj = _options.Serializer.Deserialize <T>(message.Data); await handler(realObj); }; for (int i = 0; i < threadCount; i++) { var process = new WorkerProcess(_serviceProvider, topic); await _processExecuter.AddProcess(process, $"redis即时任务处理:{topic}"); process.OnMessage += action; } backgroundProcessContext.SubscriberTopics.Add(topic);//便于ErrorProcess处理 }
private bool ReadTrackIRData(ref InternalHeadPoseData output) { if (trackIRWorker == null) { trackIRWorker = SetupRealTrackIRDll(); } var trackirData = freepieData.Read(x => x.TrackIRData); if (DateTime.Now - new DateTime(trackirData.LastUpdatedTicks) > TimeSpan.FromSeconds(WorkerProcessTimeout)) { trackIRWorker.Dispose(); throw new Exception("Lost contact with worker process."); } var data = trackirData.RealTrackIRData; if (data.FrameSignature == lastFrame || data.FrameSignature == 0) { return(false); } output = new InternalHeadPoseData { Yaw = data.Yaw, Pitch = data.Pitch, Roll = data.Roll, X = data.X, Y = data.Y, Z = data.Z }; lastFrame = data.FrameSignature; return(true); }
private void frmMain_Load(object sender, EventArgs e) { using (FlightProcessorConnection cn = new FlightProcessorConnection()) { this.Text += " [" + cn.Database.Connection.Database + "]"; } _timer1.Interval = 2000; _timer1.Elapsed += new System.Timers.ElapsedEventHandler(_timerEvent1); _timer1.Enabled = true; _timer2.Interval = 2000; //every 10 second _timer2.Elapsed += new System.Timers.ElapsedEventHandler(_timerEvent2); _timer2.Enabled = true; ThreadDBActions = new Thread(new ThreadStart(fnThreadDBActions)); ThreadDBActions.IsBackground = true; ThreadDBActions.Start(); ThreadSendAlertQueue = new Thread(new ThreadStart(fnSendAlertQueue)); ThreadSendAlertQueue.IsBackground = true; ThreadSendAlertQueue.Start(); ResetFlightsGrid(); gridFlights.AutoSizeCells(); ResetNotificationGrid(); gridNotifications.AutoSizeCells(); WorkerProcess.OnTaskError += ShowExceptions; WorkerProcess.OnDbEntityException += ShowEntityErrors; WorkerProcess.StartProcessor(); }
public void WorkerProcessFinished() { try { workerProcess = null; WmiBase.Singleton.DebugMsg("Worker process died"); if ((lastStartAttempt - DateTime.UtcNow) < TimeSpan.FromMilliseconds(restartTime)) { Thread.Sleep(restartTime); restartTime = restartTime * 2; if (restartTime > 120000) { restartTime = 120000; } } else { restartTime = 1000; } if (running) { wmisession.Log("Worker process restarting"); getConsoleAndSpawn(); } } catch (Exception e) { exceptionhandler.HandleException("Clipboard handle worker", e); } }
public async Task <bool> fnThreadDBActionsAction() { // Check any Flights that is more than 60 * 3 seconds old, then // Generate the report and remove the flights foreach (String Key in WorkerProcess.Keys()) { DroneDataProcessor TheFlight = WorkerProcess.Flight(Key); Double ElapsedTime = TheFlight.GetElapsed(); if (ElapsedTime > 30) { //Generate the report await TheFlight.UpdateFlightSummary(); await TheFlight.GenerateReport(); WorkerProcess.RemoveProximity(Key); WorkerProcess.RemoveFlight(Key); TheFlight = null; } } //Update the Flight information back to Database await WorkerProcess.UpdateFlightsToDB(); //Update Proximity of active flights await WorkerProcess.GenerateProximity(); //Load list of alerts required to send await AlertQueue.LoadQueue(); return(true); }
void spawnWorker() { if (running) { wmisession.Log("Spawn Worker Process"); if (workerProcess == null) { try { lastStartAttempt = DateTime.UtcNow; workerProcess = new WorkerProcess(clipboard, wmisession, exceptionhandler, this, consoletoken); } catch (Exception e) { wmisession.Log("Worker process failed to start " + e.ToString()); gotConsole = false; } } else { wmisession.Log("Unexpectedly trying to spawn a worker process while one is running"); gotConsole = false; } } }
public object Get() { // // Filter by WorkerProcess string wpUuid = Context.Request.Query[Defines.IDENTIFIER]; if (string.IsNullOrEmpty(wpUuid)) { return(NotFound()); } WorkerProcess wp = WorkerProcessHelper.GetWorkerProcess(new WorkerProcessId(wpUuid).Id); if (wp == null) { return(NotFound()); } IEnumerable <Site> sites = SitesHelper.GetSites(wp); // // Set HTTP header for total count this.Context.Response.SetItemsCount(sites.Count()); Fields fields = Context.Request.GetFields(); var obj = new { websites = sites.Select(site => Sites.SiteHelper.ToJsonModelRef(site, fields)) }; return(obj); }
public Worker(string[] args) { Console.WriteLine(Environment.NewLine + "Welcome to XAP.NET 11 Worker!" + Environment.NewLine + " hostName=" + HostName + "currentProcess.Id=" + CurrentProcess.Id); WorkerProcess workerProcess = new WorkerProcess(); workerProcess.HostName = HostName; workerProcess.ProcessID = CurrentProcess.Id; workerProcess.ID = HostName + "=" + CurrentProcess.Id; workerProcess.StartDateTime = DateTime.Now; SpaceProxy.Write(workerProcess, 5000); String ioType = args.Length == 1 ? "NIO" : args[1]; SleepTime = args.Length == 2 ? 2000 : Convert.ToInt32(args[2]); if (ioType.Equals("IO")) { IEventListenerContainer <Request> eventListenerContainer = EventListenerContainerFactory.CreateContainer <Request>(SpaceProxy, new WorkeIO()); eventListenerContainer.Start(); } else { IEventListenerContainer <Request> eventListenerContainer = EventListenerContainerFactory.CreateContainer <Request>(SpaceProxy, new WorkeNIO()); eventListenerContainer.Start(); } }
public void DoWork() { WorkerProcess workerProcess = new WorkerProcess(); workerProcess.ProcessID = Worker.CurrentProcess.Id; workerProcess.ID = workerProcess.HostName + "=" + workerProcess.ProcessID; while (true) { try { workerProcess.StartDateTime = DateTime.Now; IdQuery <WorkerProcess> idQuery = new IdQuery <WorkerProcess>(workerProcess.ID); //IChangeResult<WorkerProcess> changeResult = Worker.SpaceProxy.Change<WorkerProcess>(idQuery, new ChangeSet().Set("LastUpdateDateTime", DateTime.Now).Lease(10000)); IChangeResult <WorkerProcess> changeResult = Worker.ComputeSpaceProxy.Change <WorkerProcess>(idQuery, new ChangeSet().Lease(10000).Set("Priority", Worker.Priority)); if (changeResult.NumberOfChangedEntries == 0) { WriteHeartBeat(workerProcess); } Thread.Sleep(timeout); } catch (Exception) { // do nothing } } }
internal void Start() { process = new WorkerProcess(this); process.Ready += OnReady; process.WorkerLost += OnWorkerLost; process.Start(Program.CreateStartInfo()); }
void handleShutdown() { running = false; if (workerProcess != null) { workerProcess.Stop(false); workerProcess = null; } }
public static void Kill(WorkerProcess wp) { if (wp == null) { throw new ArgumentNullException(nameof(wp)); } Process.GetProcessById(wp.ProcessId).Kill(); }
private void WriteHeartBeat(WorkerProcess workerProcess) { workerProcess.HostName = Worker.HostName; workerProcess.ProcessID = Worker.CurrentProcess.Id; workerProcess.ID = workerProcess.HostName + "=" + workerProcess.ProcessID; workerProcess.StartDateTime = DateTime.Now; workerProcess.LastUpdateDateTime = DateTime.Now; workerProcess.Priority = Worker.Priority; Worker.ComputeSpaceProxy.Write(workerProcess, 5000); }
/// <summary> Отримати дані про процес </summary> /// <param name="workerProcess">процес</param> protected WorkerProcessData GetWorkerProcessData(WorkerProcess workerProcess) { var(ram, cpu) = GetProcessRamCpuUsage(workerProcess.ProcessId); return(new WorkerProcessData { ProcessId = workerProcess.ProcessId, State = workerProcess.State.ToString(), RAM = ram, CPU = cpu }); }
public object Get() { IEnumerable <Request> requests = null; // // Filter by WorkerProcess string wpUuid = Context.Request.Query[Defines.WP_IDENTIFIER]; if (!string.IsNullOrEmpty(wpUuid)) { WorkerProcess wp = WorkerProcessHelper.GetWorkerProcess(new WorkerProcessId(wpUuid).Id); if (wp == null) { return(NotFound()); } requests = RequestHelper.GetRequests(wp, Context.Request.GetFilter()); } // // Filter by Site if (requests == null) { string siteUuid = Context.Request.Query[Sites.Defines.IDENTIFIER]; if (!string.IsNullOrEmpty(siteUuid)) { Site site = SiteHelper.GetSite(new SiteId(siteUuid).Id); if (site == null) { return(NotFound()); } requests = RequestHelper.GetRequests(site, Context.Request.GetFilter()); } } // // Get all if (requests == null) { requests = RequestHelper.GetRequests(Context.Request.GetFilter()); } // // Set HTTP header for total count this.Context.Response.SetItemsCount(requests.Count()); Fields fields = Context.Request.GetFields(); return(new { requests = requests.Select(r => RequestHelper.ToJsonModelRef(r, fields)) }); }
public static object ToJsonModelRef(WorkerProcess wp, Fields fields = null) { if (fields == null || !fields.HasFields) { return(WpToJsonModel(wp, RefFields, false)); } else { return(WpToJsonModel(wp, fields, false)); } }
public static IEnumerable <Request> GetRequests(WorkerProcess wp, Filter filter = null) { if (wp == null) { throw new ArgumentNullException(nameof(wp)); } int timeElapsed = (int?)filter?.Get <uint>("time_elapsed") ?? DEFAULT_TIME_ELASPSED; return(wp.GetRequests(timeElapsed).Distinct(_RequestComparer)); }
void restartWorker() { wmisession.Log("Restart worker"); workerProcess.Stop(false); workerProcess = null; if (running) { getConsoleAndSpawn(); } }
public void StartWorkers(WorkerProcess process, int worker_count) { Task[] tasks = new Task[worker_count]; for (int index = 0; index < worker_count; index++) { tasks[index] = Task.Run(() => { this.Start(process); }); } this.running_worker_tasks = tasks; }
public WorkerProcess2(WorkerProcess process) { AppPoolName = process.AppPoolName; ProcessGuid = process.ProcessGuid; ProcessId = process.ProcessId; State = process.State; ApplicationDomains = new List <ApplicationDomain2>(); foreach (var item in process.ApplicationDomains) { ApplicationDomains.Add(new ApplicationDomain2(item)); } }
private WorkerProcess<TrackIRWorker> SetupRealTrackIRDll() { string realDllPath = DllRegistrar.GetRealTrackIRDllPath(Environment.CurrentDirectory); if (realDllPath == null) return new WorkerProcess<TrackIRWorker>(); freepieData.Write(x => x.TrackIRData, new TrackIRData { LastUpdatedTicks = DateTime.Now.Ticks }); var worker = new WorkerProcess<TrackIRWorker>(Path.Combine(realDllPath, NPClientName).Quote() + " " + Process.GetCurrentProcess().MainWindowHandle.ToInt64() + " " + doLog); worker.Start(); return worker; }
public void Dispose() { //Buffered data. while (WorkerProcess.IsBusy) { WorkerProcess.CancelAsync(); } Socket.CloseAsync(WebSocketCloseStatus.NormalClosure, "", System.Threading.CancellationToken.None); BufferedData = null; Socket.Dispose(); //Client //Background worker. }
public void StartWorkers(WorkerProcess process, int worker_count) { SubscriberProcess x = (req, tracker) => { this.CurrentZeusRequestId = req.request_id; return(process(req)); }; this.StartWorkersAsync( (SubscriberProcess)((req, tracker) => { this.CurrentZeusRequestId = req.request_id; return(process(req)); }), worker_count).Wait(); }
public static IEnumerable <ApplicationInfo> GetApplications(WorkerProcess wp) { if (wp == null) { throw new ArgumentNullException(nameof(wp)); } List <ApplicationInfo> result = new List <ApplicationInfo>(); // // Get AppPool var appPool = AppPoolHelper.GetAppPool(wp.AppPoolName); if (appPool == null) { return(result); } // // Find all apps in the app pool var apps = Applications.ApplicationHelper.GetApplications(appPool); // // Match Site Id and App Path foreach (var app in apps) { foreach (var ad in wp.ApplicationDomains) { if (ad.Id.Contains($"/{app.Site.Id}/")) { string appPath = app.Application.Path; string adPath = ad.VirtualPath; if (appPath.Equals(adPath, StringComparison.OrdinalIgnoreCase) || appPath.Equals(adPath.TrimEnd('/'), StringComparison.OrdinalIgnoreCase)) { result.Add(app); break; } } } } return(result); }
public void DoWork() { WorkerProcess workerProcess = new WorkerProcess(); workerProcess.HostName = Worker.HostName; workerProcess.ProcessID = Worker.CurrentProcess.Id; workerProcess.ID = workerProcess.HostName + "=" + workerProcess.ProcessID; workerProcess.StartDateTime = DateTime.Now; workerProcess.LastUpdateDateTime = DateTime.Now; Worker.SpaceProxy.Write(workerProcess, 5000); while (true) { workerProcess.StartDateTime = DateTime.Now; Worker.SpaceProxy.Change(new IdQuery <WorkerProcess>(workerProcess.ID), new ChangeSet().Set("LastUpdateDateTime", DateTime.Now).Lease(5000)); Thread.Sleep(timeout); } }
private void _timerEvent1(object Source, System.Timers.ElapsedEventArgs e) { SetText(txtPendingRecords, WorkerProcess.GetPendingDataCount().ToString()); gridFlights.Invoke(new Action(() => { ResetFlightsGrid(); int Row = 0; foreach (String Key in WorkerProcess.Keys()) { Row++; gridFlights.Rows.Insert(Row); for (var i = 0; i <= 9; i++) { gridFlights[Row, i] = WorkerProcess.Flight(Key).Cell(i); } } gridFlights.AutoSizeCells(); })); }
public static void Main(string[] args) { //TODO: read from configuration / env variables configuration parameters var workerProcess = new WorkerProcess(new RabbitMQEventConsumer(host: "localdev", vhost: "/test", username: "******", password: "******"), new SpotCharterEventSourceRepository("SpotCharters", "spot_user", "spot_user", host: "localdev"), new SpotCharterQueryRepository("localdev", "spotService", username: "******", password: "******")); Task.WaitAll(Task.Factory.StartNew(() => { Console.WriteLine("Consumer start waiting events from message broker."); workerProcess.Start("chartering.spot.viewupdate"); while (Console.ReadLine() != "quit") { ; } Console.WriteLine("Quitting consumer ..."); workerProcess.Quit(); Console.WriteLine("Closing"); })); }
public object Get(string id) { var reqId = new RequestId(id); WorkerProcess wp = WorkerProcessHelper.GetWorkerProcess(reqId.ProcessId); if (wp == null) { return(NotFound()); } Request request = RequestHelper.GetRequest(wp, reqId.Id); if (request == null) { return(NotFound()); } return(RequestHelper.ToJsonModel(request, Context.Request.GetFields())); }
private async Task <WorkerClient> ActivateWorker(CancellationToken ct) { if (this.disposed) { throw new ObjectDisposedException("This instance has been disposed."); } if (this.debugMode != DebugMode.None) { Console.WriteLine(string.Format(CultureInfo.InvariantCulture, "{0} Waiting for worker to be ready.", this.id)); } await this.waitForWorkerSemaphore.WaitAsync(ct); lock (this.stateLock) { this.RecoverWorkers(); WorkerClient nextClient; if (this.idleClients.Count > 0) { nextClient = this.idleClients.Dequeue(); } else { nextClient = new WorkerProcess().Start(this.debugMode); nextClient.CurrentStateChangedEvent += this.OnWorkerCurrentStateChanged; } this.busyClients.AddLast(nextClient); this.EnsureIdleWorkerLimit(); if (this.debugMode != DebugMode.None) { Console.WriteLine(string.Format(CultureInfo.InvariantCulture, "{0} Successfully retrieved worker {1}", this.id, nextClient)); } return(nextClient); } }
private CounterDescriptor CreateDescriptor(WorkerProcess w3wp) { //obtain reference to PerformanceCounter object var pc = new PerformanceCounter("Process", "% Processor Time", PerformanceCounterProcessHelper.GetPerformanceCounterProcessName(w3wp.ProcessId), true); //read value to start counter pc.NextValue(); //setup descriptor object for central framework var result = new IisWorkerProcessCpuCounterDescriptor { Name = w3wp.AppPoolName, SystemCounter = pc, ProcessId = w3wp.ProcessId, Unit = "Percent", MetricName = "CPUUtilization" }; result.Dimensions.Add("SiteName", w3wp.AppPoolName); return(result); }
public void ListMessagesSucceeds() { #region Test Setup List<MessagePing> callResult; testSubject = new WorkerProcess(repoInstance.Object, membershipInstance.Object, profileInstance.Object); #endregion #region Test Operations callResult = testSubject.FetchMessages(DEFAULT_SOURCE, DEFAULT_DESTINATION); #endregion #region Assert Operation Result CollectionAssert.AllItemsAreNotNull(callResult); #endregion }
public void SentTimeIsExactly1WeekInPast() { testSubject = new WorkerProcess(repoInstance.Object, membershipInstance.Object, profileInstance.Object); MessagePing data = new MessagePing() { Id = Guid.NewGuid(), Source = DefaultSource, Destination = DefaultDestination, Message = "Hi!!", MessageSentUTC = DateTime.UtcNow.AddDays(Exactly1WeekPast), MessageRecievedUTC = null }; bool returnValue = testSubject.PostMessage(data); Assert.IsTrue(returnValue); }
public void SentTimeIsLessThanMaxTime() { testSubject = new WorkerProcess(repoInstance.Object, membershipInstance.Object, profileInstance.Object); MessagePing data = new MessagePing() { Id = Guid.NewGuid(), Source = DefaultSource, Destination = DefaultDestination, Message = "Hi!!", MessageSentUTC = DateTime.MaxValue, MessageRecievedUTC = null }; bool returnValue = testSubject.PostMessage(data); Assert.IsFalse(returnValue); }
public void CheckConversationProfileValues() { #region Test Setup List<PingList> callResult; string source = "+919840200524"; testSubject = new WorkerProcess(repoInstance.Object, membershipInstance.Object, profileInstance.Object); #endregion #region Test Operations callResult = testSubject.ListConversationRoot(source); #endregion #region Assert Operation Result Assert.IsTrue(!String.IsNullOrEmpty(callResult.First<PingList>().DestinationPingerProfile.PingerImage)); #endregion }
public void FetchMessageSucceds() { #region Setup for test testSubject = new WorkerProcess(repoInstance.Object, membershipInstance.Object, profileInstance.Object); List<MessagePing> returnValue; Expression<Func<MessagePing, bool>> expr = d => d.Destination == defaultDestination; repoInstance.Setup(ent => ent.Add(It.IsAny<MessagePing>())).Returns(dummyMessage); #endregion #region Test returnValue = testSubject.FetchMessages(defaultSource, defaultDestination); //repoInstance.Verify(e => e.Where( // It.Is<Expression<Func<MessagePing, bool>>>( // param => Expression.Lambda<Func<string>>( // (MemberExpression)(param.Body as BinaryExpression).Right // ).Compile()() == "+919840200524") // ) // ); //repoInstance.Verify(e => e.Where( // It.Is<Expression<Func<MessagePing, bool>>>( // param => Expression.Lambda<Func<string>>( // (MemberExpression)(param.Body as BinaryExpression).Left // ).Body.ToString() == "d.Destination") // ) // ); //Assert.IsNotNull(returnValue); Assert.IsTrue(0 < returnValue.Count); MessagePing retrievedMessage = returnValue[0]; Assert.IsTrue(dummyMessage.Id == retrievedMessage.Id); #endregion }
public void ListConversationRootReportsFailure() { #region Test Setup List<PingList> callResult; string source = "+919840200527"; testSubject = new WorkerProcess(repoInstance.Object, membershipInstance.Object, profileInstance.Object); #endregion #region Test Operations callResult = testSubject.ListConversationRoot(source); int actualCount = conversationGroups.Where<MessagePing>(passedExpression).Count<MessagePing>(); #endregion #region Assert Operation Result Assert.IsTrue(actualCount != callResult.Count); #endregion }
public void IsRecievedTimeWithinPast1Hour() { testSubject = new WorkerProcess(repoInstance.Object, membershipInstance.Object, profileInstance.Object); MessagePing data = new MessagePing() { Id = Guid.NewGuid(), Source = DefaultSource, Destination = DefaultDestination, Message = "Hi!!", MessageSentUTC = DateTime.UtcNow, MessageRecievedUTC = null }; bool returnValue = testSubject.PostMessage(data); Assert.IsTrue(DateTime.UtcNow.AddHours(Within1HourPast) < passedToRepo.MessageRecievedUTC); }
public void ListConversationRootSucceeds() { #region Test Setup List<PingList> callResult; string source = "+919840200524"; testSubject = new WorkerProcess(repoInstance.Object, membershipInstance.Object, profileInstance.Object); #endregion #region Test Operations callResult = testSubject.ListConversationRoot(source); #endregion #region Assert Operation Result CollectionAssert.AllItemsAreNotNull(callResult); #endregion }
public void PostMessageSucceeds() { #region Setup for test testSubject = new WorkerProcess(repoInstance.Object, membershipInstance.Object, profileInstance.Object); bool returnValue; repoInstance.Setup(ent => ent.Add(It.IsAny<MessagePing>())).Returns(dummyMessage); #endregion #region Test returnValue = testSubject.PostMessage(dummyMessage); repoInstance.Verify(ent => ent.Add(dummyMessage),Times.AtLeastOnce,"Was called lesser than once"); Assert.IsTrue(returnValue); #endregion }
public void DoesServerAddRecievedTimeForMessage() { testSubject = new WorkerProcess(repoInstance.Object, membershipInstance.Object, profileInstance.Object); MessagePing data = new MessagePing() { Id = Guid.NewGuid(), Source = DefaultSource, Destination = DefaultDestination, Message = "Hi!!", MessageSentUTC = DateTime.UtcNow, MessageRecievedUTC = null }; bool returnValue = testSubject.PostMessage(data); Assert.IsNotNull(passedToRepo.MessageRecievedUTC); }
public void RecievedTimeIsAlwaysGreaterThanSentTime() { testSubject = new WorkerProcess(repoInstance.Object, membershipInstance.Object, profileInstance.Object); DateTime timestamp = DateTime.UtcNow; MessagePing data = new MessagePing() { Id = Guid.NewGuid(), Source = DefaultSource, Destination = DefaultDestination, Message = "Hi!!", MessageSentUTC = timestamp.AddMilliseconds(1), MessageRecievedUTC = timestamp }; bool returnValue = testSubject.PostMessage(data); Assert.IsFalse(returnValue); }
public void MessagesAreFetchedWithProfileDetails() { #region Test Setup List<MessagePing> callResult; bool valueCheckForAllItems = true; testSubject = new WorkerProcess(repoInstance.Object, membershipInstance.Object, profileInstance.Object); #endregion #region Test Operations callResult = testSubject.FetchMessages(DEFAULT_SOURCE, DEFAULT_DESTINATION); foreach (MessagePing message in callResult) { valueCheckForAllItems &= null != message.DestinedUserProfile; } #endregion #region Assert Operation Result Assert.IsTrue(valueCheckForAllItems); #endregion }
public void IsTimeRecievedInUTCForMessage() { testSubject = new WorkerProcess(repoInstance.Object, membershipInstance.Object, profileInstance.Object); DateTime timestamp = DateTime.Now; MessagePing data = new MessagePing() { Id = Guid.NewGuid(), Source = DefaultSource, Destination = DefaultDestination, Message = "Hi!!", MessageSentUTC = timestamp, MessageRecievedUTC = null }; bool returnValue = testSubject.PostMessage(data); Assert.IsTrue(DateTimeKind.Utc == data.MessageRecievedUTC.Value.Kind); }
public void SourceAndDestinationAreNotSame() { #region Setup for test testSubject = new WorkerProcess(repoInstance.Object, membershipInstance.Object, profileInstance.Object); repoInstance.Setup(ent => ent.Add(It.IsAny<MessagePing>())).Returns(dummyMessage); MessagePing testData = new MessagePing() { Source = "+919840200524", Destination = "+919840200524", Message = "Hello!", MessageSentUTC = DateTime.UtcNow }; #endregion #region Test and Assert bool postResult = testSubject.PostMessage(testData); Assert.IsFalse(postResult); #endregion }
public void IsRecievedTimeBetweenMinAndMaxDateTimeValue() { testSubject = new WorkerProcess(repoInstance.Object, membershipInstance.Object, profileInstance.Object); MessagePing data = new MessagePing() { Id = Guid.NewGuid(), Source = DefaultSource, Destination = DefaultDestination, Message = "Hi!!", MessageSentUTC = DateTime.UtcNow, MessageRecievedUTC = null }; bool returnValue = testSubject.PostMessage(data); Assert.IsTrue(DateTime.MinValue < passedToRepo.MessageRecievedUTC && DateTime.MaxValue > passedToRepo.MessageRecievedUTC); }
private bool ReadTrackIRData(ref InternalHeadPoseData output) { if (trackIRWorker == null) trackIRWorker = SetupRealTrackIRDll(); var trackirData = freepieData.Read(x => x.TrackIRData); if (DateTime.Now - new DateTime(trackirData.LastUpdatedTicks) > TimeSpan.FromSeconds(WorkerProcessTimeout)) { trackIRWorker.Dispose(); throw new Exception("Lost contact with worker process."); } var data = trackirData.RealTrackIRData; if (data.FrameSignature == lastFrame || data.FrameSignature == 0) return false; output = new InternalHeadPoseData { Yaw = data.Yaw, Pitch = data.Pitch, Roll = data.Roll, X = data.X, Y = data.Y, Z = data.Z }; lastFrame = data.FrameSignature; return true; }
void bw_DoWork(object sender, DoWorkEventArgs e) { try { WorkerProcess data = new WorkerProcess(); data.data = Request("GET", (string)e.Argument, "{}"); data.uri = (String)e.Argument; e.Result = data; } catch (Exception ex) { } }
void sendWorker_DoWork(object sender, DoWorkEventArgs e) { try { object[] data = (object[])e.Argument; string method = (string)data[0]; string url = (string)data[1]; string payload = (string)data[2]; WorkerProcess wp = new WorkerProcess(); wp.method = method; wp.data = Request((string)method, (string)url, payload); wp.uri = (String)url; e.Result = wp; } catch (Exception ex) { } }
public void DoesServerPreserveSentTimeForMessage() { testSubject = new WorkerProcess(repoInstance.Object, membershipInstance.Object, profileInstance.Object); DateTime timestamp = DateTime.UtcNow; MessagePing data = new MessagePing() { Id = Guid.NewGuid(), Source = DefaultSource, Destination = DefaultDestination, Message = "Hi!!", MessageSentUTC = timestamp, MessageRecievedUTC = null }; bool returnValue = testSubject.PostMessage(data); Assert.AreEqual(data.MessageSentUTC, timestamp); }
public void CheckConversationOrder() { testSubject = new WorkerProcess(repoInstance.Object, membershipInstance.Object, profileInstance.Object); string source = "+919941841903"; string destination = "+919840200524"; List<MessagePing> conversation = testSubject.FetchMessages(source, destination); for (int i = 1; i < conversation.Count - 1; i++) { Assert.IsTrue(conversation[i].MessageSentUTC > conversation[i - 1].MessageSentUTC, "The test failed for " + i + " iteration"); } }
public void MessagesAreFetchedWithProperProfileDetails() { #region Test Setup List<MessagePing> callResult; List<string> profilePictures; testSubject = new WorkerProcess(repoInstance.Object, membershipInstance.Object, profileInstance.Object); #endregion #region Test Operations callResult = testSubject.FetchMessages(DEFAULT_SOURCE, DEFAULT_DESTINATION); profilePictures = callResult.Select<MessagePing, string>(r => r.DestinedUserProfile.PingerImage).ToList<string>(); #endregion #region Assert Operation Result CollectionAssert.AllItemsAreNotNull(profilePictures); #endregion }
public void BothSentAndRecievedTimeAreNotPresent() { testSubject = new WorkerProcess(repoInstance.Object, membershipInstance.Object, profileInstance.Object); MessagePing data = new MessagePing() { Id = Guid.NewGuid(), Source = DefaultSource, Destination = DefaultDestination, Message = "Hi!!", MessageSentUTC = null, MessageRecievedUTC = null }; bool returnValue = testSubject.PostMessage(data); Assert.IsFalse(returnValue); }
public void DoesMessageHaveMessageSentTime() { //TODO: Properly instantiate the WorkerProcess testSubject = new WorkerProcess(repoInstance.Object, null, null); MessagePing data = new MessagePing() { Id = Guid.NewGuid(), Source = DefaultSource, Destination = DefaultDestination, Message = "Hi!!", MessageSentUTC = DateTime.MinValue, MessageRecievedUTC = null }; bool returnValue = testSubject.PostMessage(data); Assert.IsFalse(returnValue); }