private async void DoWork() { try { Tenants = Task.Run(async() => await ExedraLibCoreHandler.GetTenantsAsync(EnvironmentT).ConfigureAwait(true)).Result; LoadedProjects = true; foreach (var tenant in Tenants.Tenants) { NDevices += tenant.NDevices; } NTenants = Tenants.Tenants.Count; await Dispatcher.RunAsync(CoreDispatcherPriority.High, () => { TB_NTenants.Text = string.Format(CultureInfo.InvariantCulture, "{0:### ### ###}", NTenants).Trim(); TB_NDevices.Text = string.Format(CultureInfo.InvariantCulture, "{0:### ### ###}", NDevices).Trim(); UIElementsHandler.DrawScoreElements(GRD_NTenants, 5, 5, NTenants / NGroupedTenants, DefaultScoreBoxWidth, DefaultScoreBoxHeight); UIElementsHandler.DrawScoreElements(GRD_NDevices, 5, 5, NDevices / NGroupedDevices, DefaultScoreBoxWidth, DefaultScoreBoxHeight); CTRL_Animation_Tenants.Stop(); CTRL_Animation_Devices.Stop(); }); } catch (Exception e) { Debug.WriteLine($"UC_Environment_Item::DoWork()::{e.Message}"); } }
private void GetTwinsAsync() { try { Twins = Task.Run(async() => await ExedraLibCoreHandler.GetTwinsAsync(EnvironmentT, Project.Name).ConfigureAwait(false)).Result.Twins; bool a = Task.Run(async() => await DrawPushpins(Twins.ToList()).ConfigureAwait(true)).Result; Task.Run(async() => await Dispatcher.RunAsync(CoreDispatcherPriority.Low, () => { BindDataControls(); })); } catch (ArgumentException ex) { Debug.WriteLine($"GetTwinsAsync - > {ex.Message}"); } }
private async void Scheduler_Elapsed(object sender, System.Timers.ElapsedEventArgs e) { if (!IsTwinsRefreshAllowed) { await Task.Run(() => Thread.Sleep(1000)).ConfigureAwait(true); } IsTwinsRefreshAllowed = false; List <Twin> newTwins = Task.Run(async() => await ExedraLibCoreHandler.GetTwinsAsync(EnvironmentT, Project.Name).ConfigureAwait(false)).Result.Twins; var result = newTwins.Where(n => Twins.All(o => o.DeviceID != n.DeviceID)).ToList(); Debug.WriteLine($"Scheduler_Elapsed -> REFRESHING TWINS -> O: {Twins.Count} -> {result.Count}"); if (result.Count > 0) { await Task.Run(() => CleanDevicesFromRunbooks()).ConfigureAwait(false); await Task.Run(() => AddTwinsAsync(result.ToList())).ConfigureAwait(false); } IsTwinsRefreshAllowed = true; }
private async void DoWork() { int index = 1; KeyValuePair <bool, string> result = new KeyValuePair <bool, string>(); double stopAt = Math.Floor(Item.Devices.Count / Item.NRuns); foreach (var device in Item.Devices) { if (Status.Equals(RunBookItem.Status.STP)) { Status = RunBookItem.Status.STP; SetStatusControlsStyle(); return; } Stopwatch timer = new Stopwatch(); timer.Start(); while (Status.Equals(RunBookItem.Status.PAU)) { await Task.Run(() => Thread.Sleep(1000)).ConfigureAwait(false); Debug.WriteLine("PAUSED..."); } if (index % stopAt == 0) { Status = RunBookItem.Status.WAI; SetStatusControlsStyle(); await Task.Run(() => Thread.Sleep((int)Item.NSeconds * 1000)).ConfigureAwait(false); Status = RunBookItem.Status.RUN; SetStatusControlsStyle(); } switch (Item.D2CMessagesKind) { case D2CMessagesConfig.Kind.REG: result = ExedraLibCoreHandler.RegisterDevice(device.DeviceName, new BasicGeoposition() { Latitude = device.DevicePosition.Latitude, Longitude = device.DevicePosition.Longitude }, Item.Environment); break; case D2CMessagesConfig.Kind.TEL: result = ExedraLibCoreHandler.SendDimmingProfile(device.DeviceID, DateTime.Now, 100, 0, 0, 0, 0, Item.Environment); break; case D2CMessagesConfig.Kind.ALR: result = ExedraLibCoreHandler.SendAlarm(device.DeviceID, DateTime.Now, 0, Item.Environment); break; case D2CMessagesConfig.Kind.BTEL: result = ExedraLibCoreHandler.SendDimmingProfile(device.DeviceID, DateTime.Now, 100, 0, 0, 0, 0, Item.Environment); break; case D2CMessagesConfig.Kind.BALR: result = ExedraLibCoreHandler.SendAlarm(device.DeviceID, DateTime.Now, 0, Item.Environment); break; case D2CMessagesConfig.Kind.BREG: result = ExedraLibCoreHandler.RegisterDevice(device.DeviceName, new BasicGeoposition() { Latitude = device.DevicePosition.Latitude, Longitude = device.DevicePosition.Longitude }, Item.Environment); break; default: Debug.WriteLine($"DoWork() -> {Item.D2CMessagesKind}"); break; } if (!result.Key) { await Windows.ApplicationModel.Core.CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.High, () => { Failed++; TB_N_Failed.Text = string.Format(CultureInfo.InvariantCulture, "{0:### ### ###.#}", Failed).Trim(); }); } else { await Windows.ApplicationModel.Core.CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.High, () => { Succeed++; TB_N_Succeed.Text = string.Format(CultureInfo.InvariantCulture, "{0:### ### ###.#}", Succeed).Trim(); }); Debug.WriteLine(result.Value); } timer.Stop(); await Windows.ApplicationModel.Core.CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.High, () => { ElapsedTime += timer.ElapsedMilliseconds; AverageTime = ElapsedTime / index; DeliveredPercentage = Math.Round((double)index / Item.NMessages * 100, 0); double elapsedTime = Math.Round((double)ElapsedTime / 1000, 2); TB_N_Delivered.Text = string.Format(CultureInfo.InvariantCulture, "{0:###}", DeliveredPercentage); TB_N_AVG.Text = TextHandler.GetTimeFormattedFromMilseconds(AverageTime); TB_N_Elapsed.Text = TextHandler.GetTimeFormattedFromMilseconds(ElapsedTime); }); index++; } Status = RunBookItem.Status.FIN; SetStatusControlsStyle(); await Windows.ApplicationModel.Core.CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.High, () => { SB_DoWork_Done.Begin(); }); }