Ejemplo n.º 1
0
        public static async Task <IDataGroup> GetGroupAsync(INotifyPage page, string uniqueId)
        {
            if (uniqueId != Constants.NotesGroupName)
            {
                throw (new NotImplementedException());
            }

            var now = DateTime.UtcNow;

            if (DataState.IsDataLoadDue())
            {
                DataState.LastDataLoadAt = now;
                try
                {
                    //page.NotifyUser(Constants.PivotLocalData, NotifyType.StatusMessage);
                    await DataSource.LoadDenormalizeNotificationsAsync();

                    DataState.LastDataLoadSuccess = true;
                    page.NotifyUser(Constants.PivotLocalDataSuccess, NotifyType.StatusMessage);
                }
                catch
                {
                    DataState.LastDataLoadSuccess = false;
                    page.NotifyUser(Constants.PivotLocalDataError, NotifyType.ErrorMessage);
                }
            }

            if (DataState.IsDataFetchDue())
            {
                DataState.LastDataFetchAt = now;
                try
                {
                    page.NotifyUser(Constants.PivotFetchData, NotifyType.StatusMessage);
                    await DataSource.FetchDenormalizedNotificationsAsync(page);

                    DataState.LastDataFetchSuccess = true;
                    page.NotifyUser(Constants.PivotFetchDataSuccess, NotifyType.StatusMessage);
                }
                catch
                {
                    DataState.LastDataFetchSuccess = false;
                    page.NotifyUser(Constants.PivotFetchDataError, NotifyType.ErrorMessage);
                }
            }

            return(GetDenormalizedNotificationGroup());
        }