private async Task LoadAllTracesAsync()
        {
            var tracesResult = await TracesCollectorService.GetAllTracesForReservationAsync(_currentReservationId);

            if (tracesResult.Success)
            {
                var traces = tracesResult.Result.ValueOr(new List <TraceItemModel>());

                AllTracesDictionary.AddTracesRange(traces);
            }
            else
            {
                var errorMessage = tracesResult.ErrorMessage.ValueOrException(new NotImplementedException());

                await ApaleoOneNotificationService.ShowErrorAsync(errorMessage);
            }
        }
        private void UpdateCompletedTracesText()
        {
            var elementCount = AllTracesDictionary
                               .SelectMany(dict => dict.Value)
                               .Where(trace => trace.State == TraceState.Completed)
                               .ToList()
                               .Count;

            HasCompletedTraces = elementCount > 0;

            if (!HasCompletedTraces)
            {
                IsCompletedTracesVisible = false;
            }

            CompletedTracesCheckBoxText =
                string.Format(TextConstants.TracesShowCompletedCheckboxTextFormat, elementCount);
        }
        protected override async Task LoadTracesAsync()
        {
            await LoadAllTracesAsync();

            ActiveTracesDictionary.AddTracesRange(
                AllTracesDictionary
                .SelectMany(dict => dict.Value)
                .Where(trace => trace.State == TraceState.Active && trace.DueDate >= DateTime.Today)
                .ToList());

            OverdueTraces =
                AllTracesDictionary
                .SelectMany(dict => dict.Value)
                .Where(trace => trace.State == TraceState.Active && trace.DueDate < DateTime.Today)
                .ToList();

            AllTracesDictionary.SortValues(new TraceStateComparer());

            UpdateCompletedTracesText();
        }