internal bool EqualsActivePeriods(AlertData other) { var equals = true; if (!CheckPeriodEndChange) { if (ActivePeriods.Any(activePeriod => !other.ActivePeriods.Any(x => x.Equals(activePeriod)))) { equals = false; } } else { foreach (var activePeriod in ActivePeriods) { var otherActivePeriod = other.ActivePeriods.FirstOrDefault(x => x.ActivePeriodStart == activePeriod.ActivePeriodStart); var seconds = otherActivePeriod != null?Math.Abs((int)activePeriod.ActivePeriodEnd - (int)otherActivePeriod.ActivePeriodEnd) : 0; equals = otherActivePeriod != null && seconds <= AlertsDataSet.ActivePeriodEndChangeSeconds; if (!equals) { break; } } } return(equals); }
private void LoadData(IOutcomeReportServiceProvider outcomeReportServiceProvider) { Task.Run(async() => { if (IsBusy) { return; } IsBusy = true; ActivePeriods.Clear(); try { using (var periodService = outcomeReportServiceProvider.GetService()) { var activePeriods = await periodService.GetActivePeriodsAsync(new GetActivePeriodsRequest()); if (ReferenceEquals(activePeriods.Exception, null) == false) { Debug.WriteLine(activePeriods.Exception); } foreach (var vm in activePeriods.PeriodViewModels) { ActivePeriods.Add(vm); } } } catch (System.Exception ex) { var e = ex; } finally { IsBusy = false; } }); }