public void Process(PipelineArgs args)
        {
            Log.Audit("Testing mongodb connection", this);

            var connectionStringSettings = ConfigurationManager.ConnectionStrings[_connectionStringName];

            if (connectionStringSettings == null)
            {
                Log.SingleError(string.Format("Unable to determine MongoDB status because connection string name '{0}' was not found in the web.config.", _connectionStringName), this);
                args.AbortPipeline();
                return;
            }

            var driver = new MongoDbDriver(connectionStringSettings.ConnectionString);

            try
            {
                if (driver.DatabaseAvailable)
                {
                    Log.Audit("Mongo Already running", this);
                    args.AbortPipeline();
                    return;
                }
            }
            catch {}

            Log.Audit("Mongo Not Running", this);
        }
        public IHttpActionResult Flush()
        {
            var driver = new MongoDbDriver(ConfigurationManager.ConnectionStrings["analytics"].ConnectionString);

            driver.ResetDatabase();

            var item = (Context.ContentDatabase ?? Context.Database).GetItem("/sitecore/media library/Images/xgen");

            item?.Delete();

            var sql = new SqlReportingStorageProvider("reporting");

            sql.ExcludedTableFromDataDeletion("dbo", "Segments");
            sql.DeleteAllReportingData();


            var index = ContentSearchManager.GetIndex(CustomerIntelligenceConfig.ContactSearch.SearchIndexName);

            index.Reset();
            index.Refresh();
            using (var ctx = index.CreateUpdateContext())
            {
                ctx.Optimize();
            }

            return(Ok());
        }
Beispiel #3
0
 public override IEnumerable <VisitData> GetVisitDataToReindex()
 {
     return(this.SafeExecution($"Retrieveing all visit data from '{this.AnalyticsMongoConnectionString}' collection database.", () =>
     {
         var driver = MongoDbDriver.FromConnectionString(this.AnalyticsMongoConnectionString);
         return driver.Interactions.FindAllAs <VisitData>();
     }));
 }
Beispiel #4
0
        protected override IEnumerable <ContactIdentifiersData> GetContactIdentifiers()
        {
            this.Logger.Info($"Retrieveing all contact id's from '{this.AnalyticsMongoConnectionString}' collection database.", this);

            var driver = MongoDbDriver.FromConnectionString(this.AnalyticsMongoConnectionString);

            return(driver.Contacts.FindAllAs <ContactIdentifiersData>());
        }
        protected void btnRebuild_OnClick(object sender, EventArgs e)
        {
            ContentSearchManager.GetIndex("sitecore_analytics_index").Reset();
            var poolPath    = "aggregationProcessing/processingPools/live";
            var pool        = Factory.CreateObject(poolPath, true) as ProcessingPool;
            var driver      = MongoDbDriver.FromConnectionString("analytics");
            var visitorData = driver.Interactions.FindAllAs <VisitData>();
            var keys        = visitorData.Select(data => new InteractionKey(data.ContactId, data.InteractionId));

            foreach (var key in keys)
            {
                var poolItem = new ProcessingPoolItem(key.ToByteArray());
                pool?.Add(poolItem);
            }
        }
Beispiel #6
0
 public void RebuildAnalyticsIndex()
 {
     using (new SecurityDisabler())
     {
         ContentSearchManager.GetAnalyticsIndex().Reset();
         var poolPath      = "aggregationProcessing/processingPools/live";
         var pool          = Factory.CreateObject(poolPath, true) as ProcessingPool;
         var beforeRebuild = pool.GetCurrentStatus().ItemsPending;
         var driver        = MongoDbDriver.FromConnectionString("analytics");
         var visitorData   = driver.Interactions.FindAllAs <VisitData>();
         var keys          = visitorData.Select(data => new InteractionKey(data.ContactId, data.InteractionId));
         foreach (var key in keys)
         {
             var poolItem = new ProcessingPoolItem(key.ToByteArray());
             pool.Add(poolItem);
         }
     }
 }
Beispiel #7
0
        public void Process(StartMongoDbArgs args)
        {
            Log.Audit($"{this} Testing mongodb connection", this);

            var connectionStringSettings = ConfigurationManager.ConnectionStrings[_connectionStringName];

            if (connectionStringSettings == null)
            {
                Log.SingleError($"{this} Unable to determine MongoDB status because connection string name '{_connectionStringName}' was not found in the web.config.", this);
                args.AbortPipeline();
                return;
            }

            var driver = new MongoDbDriver(connectionStringSettings.ConnectionString);

            try
            {
                if (driver.DatabaseAvailable)
                {
                    Log.Audit($"{this} Mongo Already running", this);
                    args.AbortPipeline();
                    return;
                }

                var match = Regex.Match(connectionStringSettings.ConnectionString, @"mongodb://.+:(?<port>\d+)/");
                if (match.Success)
                {
                    var intVal = 0;
                    if (int.TryParse(match.Groups["port"].Value, out intVal))
                    {
                        args.Port = intVal;
                    }
                }
            }
            catch {}

            Log.Audit($"{this} Mongo Not Running", this);
        }
Beispiel #8
0
 public MongoDbVisitAggregationContextSource(MongoDbDriver driver, int threads = 2)
     : base(driver.Interactions, threads)
 {
     _driver = driver;
 }
 public MongoDbIntegrationTests()
 {
     Driver = new MongoDbDriver(Environment.GetEnvironmentVariable("MONGODB_TEST_CONNECTION"));
 }