/// <summary> /// Añade un objeto de sincronización en base de datos /// </summary> /// <param name="lastSyncro">Objeto identificador de OAIPMH que contiene la fecha</param> /// <param name="repositoryId">fIdentificador del repositorio</param> /// <param name="set">tipo del objeto, usado para filtrar por agrupaciones</param> private void AddSyncro(IdentifierOAIPMH lastSyncro, string set, Guid repositoryId) { if (_context.RepositorySync.Any(item => item.RepositoryId.Equals(repositoryId))) { if (!string.IsNullOrEmpty(set)) { RepositorySync repoSync = _context.RepositorySync.FirstOrDefault(item => item.RepositoryId.Equals(repositoryId) && item.Set == null); repoSync.UltimaFechaDeSincronizacion = lastSyncro.Fecha; } else { RepositorySync repoSync = _context.RepositorySync.FirstOrDefault(item => item.RepositoryId.Equals(repositoryId) && item.Set.Equals(set)); if (repoSync == null) { repoSync.UltimaFechaDeSincronizacion = lastSyncro.Fecha; } else { RepositorySync repoSyncAdd = new RepositorySync() { Id = Guid.NewGuid(), RepositoryId = repositoryId, Set = set, UltimaFechaDeSincronizacion = lastSyncro.Fecha }; _context.RepositorySync.Add(repoSyncAdd); } } } else { RepositorySync repoSyncAdd = new RepositorySync() { Id = Guid.NewGuid(), RepositoryId = repositoryId, Set = null, UltimaFechaDeSincronizacion = lastSyncro.Fecha }; _context.RepositorySync.Add(repoSyncAdd); } _context.SaveChanges(); }
/// <summary> /// Añade un objeto de sincronización en base de datos /// </summary> /// <param name="lastSyncro">Objeto identificador de OAIPMH que contiene la fecha</param> /// <param name="repositoryId">Identificador del repositorio</param> /// <param name="set">tipo del objeto, usado para filtrar por agrupaciones</param> private void AddSyncro(IdentifierOAIPMH lastSyncro, string set, Guid repositoryId) { //Actualizamos la fecha de la última sincronización RepositoryConfig repositoryConfig = _context.RepositoryConfig.Include(item => item.RepositoryConfigSet).FirstOrDefault(x => x.RepositoryConfigID == repositoryId); if (set != null) { //En caso de que venga el set if (repositoryConfig.RepositoryConfigSet.FirstOrDefault(x => x.Set == set) != null) { //actualizamos la fila de la tabla RepositoryConfigSet con la fecha repositoryConfig.RepositoryConfigSet.FirstOrDefault(x => x.Set == set).LastUpdate = lastSyncro.Fecha; } else { //Creamos la fila de la tabla RepositoryConfigSet con la fecha _context.RepositoryConfigSet.Add(new RepositoryConfigSet() { RepositoryConfigSetID = Guid.NewGuid(), LastUpdate = lastSyncro.Fecha, RepositoryID = repositoryId, Set = set }); } } else { //En caso de que no venga el set if (repositoryConfig != null && repositoryConfig.RepositoryConfigSet.FirstOrDefault(x => x.Set == "-") != null) { //Actualizamos la fila de la tabla RepositoryConfigSet(con el campo set '-') con la fecha repositoryConfig.RepositoryConfigSet.FirstOrDefault(x => x.Set == "-").LastUpdate = lastSyncro.Fecha; } else { //Creamos la fila de la tabla RepositoryConfigSet con la fecha _context.RepositoryConfigSet.Add(new RepositoryConfigSet() { RepositoryConfigSetID = Guid.NewGuid(), LastUpdate = lastSyncro.Fecha, RepositoryID = repositoryId, Set = "-" }); } } if (_context.RepositorySync.Any(item => item.RepositoryId.Equals(repositoryId))) { if (!string.IsNullOrEmpty(set)) { RepositorySync repoSync = _context.RepositorySync.FirstOrDefault(item => item.RepositoryId.Equals(repositoryId) && item.Set == null); repoSync.UltimaFechaDeSincronizacion = lastSyncro.Fecha; } else { RepositorySync repoSync = _context.RepositorySync.FirstOrDefault(item => item.RepositoryId.Equals(repositoryId) && item.Set.Equals(set)); if (repoSync == null) { repoSync.UltimaFechaDeSincronizacion = lastSyncro.Fecha; } else { RepositorySync repoSyncAdd = new RepositorySync() { Id = Guid.NewGuid(), RepositoryId = repositoryId, Set = set, UltimaFechaDeSincronizacion = lastSyncro.Fecha }; _context.RepositorySync.Add(repoSyncAdd); } } } else { RepositorySync repoSyncAdd = new RepositorySync() { Id = Guid.NewGuid(), RepositoryId = repositoryId, Set = null, UltimaFechaDeSincronizacion = lastSyncro.Fecha }; _context.RepositorySync.Add(repoSyncAdd); } _context.SaveChanges(); }