As coleções locais são os principais mecanismo para gereciarmos dados offline sem alterar muito a lógica do aplicativo.
E para criarmos essas coleções e armazena-las localmente precisamos utilizar funções:
SaveData: Armazena uma coleção para um uso posterior com um nome, mesmo recarregando a aplicação o dado não é perdido, só quando dá um clear.
LoadData: Recarrega novamente o uma coleção pelo nome que foi salvo no SaveData.
ClearData: Apaga o armazenamento com um nome específico ou apaga todo o armazenamento associado ao aplicativo se nenhum nome for fornecido.
Limitações
As funções LoadData e SaveData serve para auxiliar o armazenamento de um volume pequeno de dados, são limitadas pela quantidade de memória do dispositivo, pelo fato da coleção ser armazenado na memória. Segundo a documentação da Microsoft geralmente você terá de 30 a 70 megabytes de memória disponível.
Base de Dados e exibindo na Galeria
Criamos uma lista chamada CadastroProdutos no SharePoint com as seguintes colunas:
Criar uma Galleria para mostrar os dados do SharePoint, mesmo offline. Para isso iremos utilizar uma coleção para armazenar os dados e salvar-los localmente quando estiver online.
Criando Formulário para Salvar Online e Offline
Inserindo um formulário conectando com a base CadastroProdutos para cadastrar os novos produtos
Vamos inserir uma label no cabeçalho para nos avisar quando estiver online ou offline.
Vamos inserir um ícone e no OnSelected colocar a função para salvar os dados. Primeiro condição que temos que testar é se o App está online, se estiver só precisamos salvar normalmente com a função SubmitForm, mas caso não estiver online vamos Coletar esses dados do formulário e salvar em uma coleção, dentro dessa mesma condição chamar a funça SaveData para salvar esses dados na coleção Offline.
Vamos adicionar um controle Timer na tela, que vai ter algumas propriedades para nos axiliar a salvar os dados coletados offline.
Na propriedade Duration vamos definir para 1000
Na propriedade AutoStart e a propriedade Repeat vamos definir para true
Na propriedade OnTimerEnd vamos definir o seguinte. Primeiro vamos testar se o aplicativo está conectadoe e se a coleção que salvamos dados offline tem algum registro. Caso essas duas condições está sendo atendida, vamos fazer um ForAll para que cada
No OnStart do App