Exemplo n.º 1
0
        public async Task DownloadServerChanges(MobileMetadataDownloadResponse downloadedMetadata, CancellationToken cancellationToken)
        {
            // TODO: this can be optimized: each granted application
            // results on a call issued to the server.
            //TODO: no need to fetch again from database

            var applications = await _metadataRepository.LoadAllApplicationsAsync(cancellationToken);

            foreach (var application in applications)
            {
                await DownloadApplicationChanges(application, cancellationToken);
            }
        }
        private static async Task SaveResultsToDB(CancellationToken cancellationToken, bool resetSequences,
                                                  MobileMetadataDownloadResponse downloadData)
        {
            await MetadataRepository.SaveMenuAsync(downloadData.Menu, cancellationToken);

            foreach (var completeMetadata in downloadData.Metadatas)
            {
                await MetadataRepository.SaveAsync(completeMetadata.MobileSchema(), cancellationToken);
            }

            if (resetSequences)
            {
                await MetadataRepository.RecreateSequencesAsync(cancellationToken);
            }
        }