using CD67.ModeleMVC.Entity;
using CD67.ModeleMVC.Factory;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using CD67.ModeleMVC.Solr;
// Script d'indexation global
// > Utilise la DLL Solr
// Pour réutiliser, remplacer Viking et vikingFactory par les noms qui correspondent au projet
namespace CD67.ModeleMVC.SolrScript
{
class Program
{
static string SolrUrl = "http://t-lunr4:8080/solr/modele-mvc";
///
/// Lance l'indexation de tous les objets Vikings
///
static void Main(string[] args)
{
// Instancie la base de données
ModeleMVCEntities db = new ModeleMVCEntities();
// Génère un GUID pour versionner les données issues de cette indexation
string version = Guid.NewGuid().ToString();
Console.WriteLine("Version index:" + version);
// Parcourt les vikings de la base et les ajoute à l'index au fur et à mesure
VikingFactory vikingsFactory = new VikingFactory(db);
foreach (var viking in vikingsFactory.getAll())
{
IndexeurSolr.addViking(viking, version, false);
Console.WriteLine("* Indexe: Viking " + viking.Id.ToString());
}
// Supprime les anciennes données en se basant sur le numero de version
Console.WriteLine("Nettoyage anciennes versions...");
SolrTools.SolrEngine.SolrUpdate(SolrUrl, "-version:" + version + "");
// Envoie les requetes de commit et d'optimisation de l'index
Console.WriteLine("Commit et optimisation");
IndexeurSolr.commit();
IndexeurSolr.optimize();
Console.WriteLine("Indexation terminée, presser une touche pour fermer.");
Console.ReadKey();
}
}
}