private void OnHistoryEvent(History item)
        {
            var template = IntervalTemplates.FirstOrDefault(x => x.Id == item.TemplateId);

            if (template != null)
            {
                template.History.Add(item);
            }
        }
        private async Task OnIntervalTemplateChangeAsync(IntervalTemplate item)
        {
            if (item.IsNew)
            {
                var id = await IntervalService.AddItemAsync(Mapper.Map <IntervalTemplateDto>(item));

                item.Id = id;
                IntervalTemplates.Insert(0, item);
            }
            else
            {
                await IntervalService.UpdateItemAsync(Mapper.Map <IntervalTemplateDto>(item));
            }
        }
        private async Task DeleteTemplateAsync(object obj)
        {
            if (obj is IntervalTemplate item)
            {
                if (Device.RuntimePlatform != Device.UWP &&
                    !(await DialogService.DisplayAlertAsync("Delete", $"You are about to delete template '{item.Name}', are you sure?", "Ok", "Cancel")))
                {
                    return;
                }

                if (await IntervalService.DeleteItemAsync(item.Id))
                {
                    IntervalTemplates.Remove(item);
                }
            }
        }
        public async Task InitializeAsync(INavigationParameters parameters)
        {
            foreach (var template in await IntervalService.GetItemsAsync())
            {
                var map = Mapper.Map <IntervalTemplate>(template);

                foreach (var interval in template.Intervals)
                {
                    map.Intervals.Add(Mapper.Map <Interval>(interval));
                }

                foreach (var history in template.History)
                {
                    map.History.Add(Mapper.Map <History>(history));
                }

                IntervalTemplates.Add(map);
            }
        }