/// <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();
 }
Ejemplo n.º 2
0
        /// <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();
        }