private async Task RestoreData()
        {
            Enums.BackupRestoreStatus status = Enums.BackupRestoreStatus.Processing;

            var setting = await SettingService.GetSettingValue <bool>(Constants.RESTORE_SETTING_KEY);

            if (setting)
            {
                throw new Exception("Data already restored!");
            }

            var restoreDataCheck = await BindingPage.DisplayAlert("Are you sure you want to restore data?", "WARNING: Restoring wrongly may cause duplicate entries", "Yes, I am Sure", "Cancel");

            await RunAsync(async (ct) =>
            {
                if (restoreDataCheck)
                {
                    status = await BackupService.RestoreData();
                }
            },
                           true,
                           (ex) =>
            {
                status = Enums.BackupRestoreStatus.Failed;
            });

            switch (status)
            {
            case Enums.BackupRestoreStatus.Sucess:
                LoggerService.LogInformation("Data Restored Successfully");
                break;

            case Enums.BackupRestoreStatus.Failed:
                LoggerService.LogInformation("Restore Failed");
                break;

            case Enums.BackupRestoreStatus.Processing:
                break;
            }
        }
        private async Task BackupData()
        {
            Enums.BackupRestoreStatus status = Enums.BackupRestoreStatus.Processing;

            var backupDataCheck = await BindingPage.DisplayAlert("Are you sure you want to backup data?", "Click yes to confirm", "Yes, I am Sure", "Cancel");

            await RunAsync(async (ct) =>
            {
                if (backupDataCheck)
                {
                    List <IBackupModule> backupModules = new List <IBackupModule>()
                    {
                        new BackupModule <Order>(),
                        new BackupModule <PhoneInformation>(),
                        new BackupModule <PhoneAppLink>(),
                        new BackupModule <AppName>(),
                        new BackupModule <Setting>(),
                    };

                    status = await BackupService.BackupData(backupModules);
                }
            },
                           true,
                           (ex) =>
            {
                status = Enums.BackupRestoreStatus.Failed;
            });

            switch (status)
            {
            case Enums.BackupRestoreStatus.Sucess:
                LoggerService.LogInformation("Backup Success");
                break;

            case Enums.BackupRestoreStatus.Failed:
                LoggerService.LogInformation("Backup Failed");
                break;
            }
        }