public async Task <IEnumerable <Site> > GetAllAsync() { var data = await _siteRepository.GetAllByUserIdAsync(_authService.UserId); var sites = data.Select(f => new Site(f)); return(sites); }
private async Task SyncSitesAsync(IDictionary <string, CipherResponse> serverSites, bool deleteMissing) { if (!_authService.IsAuthenticated) { return; } var localSites = (await _siteRepository.GetAllByUserIdAsync(_authService.UserId).ConfigureAwait(false)) .ToDictionary(s => s.Id); foreach (var serverSite in serverSites) { if (!_authService.IsAuthenticated) { return; } var existingLocalSite = localSites.ContainsKey(serverSite.Key) ? localSites[serverSite.Key] : null; if (existingLocalSite == null) { var data = new SiteData(serverSite.Value, _authService.UserId); await _siteRepository.InsertAsync(data).ConfigureAwait(false); } else if (existingLocalSite.RevisionDateTime != serverSite.Value.RevisionDate) { var data = new SiteData(serverSite.Value, _authService.UserId); await _siteRepository.UpdateAsync(data).ConfigureAwait(false); } } if (!deleteMissing) { return; } foreach (var site in localSites.Where(localSite => !serverSites.ContainsKey(localSite.Key))) { await _siteRepository.DeleteAsync(site.Value.Id).ConfigureAwait(false); } }