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);
        }
Exemplo n.º 2
0
        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;
                }
            });
        }