예제 #1
0
        public void TestTrackingSessions()
        {
            // Use IOC instead...
            const string connectionString = "mongodb://localhost";
            var          client           = new MongoClient(connectionString);
            var          server           = client.GetServer();
            var          database         = server.GetDatabase("test");
            var          dataStore        = new MongoDataStore(database);

            var sessions = new TrackingSessions(dataStore);
            var session1 = sessions.Add();

            for (int i = 0; i < 100; i++)
            {
                session1.AddPosition(new TrackingPosition((decimal)(0.01 * i), (decimal)(0.02 * i)));
                sessions.Update(session1);
            }
            var session2 = sessions.Add(TrackingType.Full);

            for (int i = 0; i < 100; i++)
            {
                session2.AddPosition(new TrackingPosition((decimal)(0.01 * i), (decimal)(0.02 * i)));
                sessions.Update(session2);
            }
        }
예제 #2
0
        protected override void ConfigureApplicationContainer(TinyIoCContainer container)
        {
            base.ConfigureApplicationContainer(container);

            var mongoDataStore = new MongoDataStore("mongodb://localhost:27919/todos");

            container.Register <IDataStore>(mongoDataStore);
        }
        //protected virtual void CreateHeaderWebDataPageManager_v1(XElement xe)
        //{
        //    _headerDataPageManager = new WebDataPageManager<THeaderData>();

        //    _headerDataPageManager.WebLoadDataManager = new WebLoadDataManager<IEnumDataPages<THeaderData>>();
        //    UrlCache urlCache = UrlCache.Create(xe);
        //    if (urlCache != null)
        //    {
        //        urlCache.GetUrlSubDirectory = GetHeaderPageCacheUrlSubDirectory;
        //        _headerDataPageManager.WebLoadDataManager.UrlCache = urlCache;
        //    }

        //    _headerDataPageManager.WebLoadDataManager.InitLoadFromWeb = InitLoadFromWeb;
        //    _headerDataPageManager.WebLoadDataManager.GetHttpRequestParameters = GetHttpRequestParameters;
        //    _headerDataPageManager.WebLoadDataManager.GetData = GetHeaderPageData;
        //    _headerDataPageManager.GetKeyFromHttpRequest = GetHeaderKey;

        //    _headerDataPageManager.DocumentStore = MongoDocumentStore<IEnumDataPages<THeaderData>>.Create(xe);
        //    if (_headerDataPageManager.DocumentStore != null)
        //        _headerDataPageManager.DocumentStore.NominalType = _headerPageNominalType;

        //    _headerDataPageManager.GetHttpRequestPageFunction = GetHttpRequestPage;
        //}

        protected virtual void CreateDetailWebDataManager(XElement xe)
        {
            _detailDataManager = new WebDataManager_v4 <TDetailData>();
            //_detailDataManager.Version = xe.zXPathValue("Version").zTryParseAs(1);

            UrlCache urlCache = UrlCache.Create(xe);

            if (urlCache != null)
            {
                urlCache.GetUrlSubDirectory = GetDetailCacheUrlSubDirectory;
            }

            _detailDataManager.WebLoadDataManager = new WebLoadDataManager_v2 <TDetailData>();
            _detailDataManager.WebLoadDataManager.TraceException  = true;
            _detailDataManager.WebLoadDataManager.UrlCache        = urlCache;
            _detailDataManager.WebLoadDataManager.InitLoadFromWeb = InitLoadFromWeb;
            _detailDataManager.WebLoadDataManager.GetData         = GetDetailData;
            SetHttpRequestParameters(_detailDataManager.WebLoadDataManager.RequestParameters);

            _detailDataManager.GetKeyFromHttpRequest = GetDetailKey;
            //_detailDataManager.LoadImages = LoadDetailImages;

            //if (_detailDataManager.Version < 3)
            //{
            //    _detailDataManager.DocumentStore = MongoDocumentStore<TDetailData>.Create(xe);
            //}
            //else
            //{
            _detailDataManager.DataStore = MongoDataStore.Create(xe);
            MongoDataSerializer <TDetailData> dataSerializer = new MongoDataSerializer <TDetailData>();

            dataSerializer.ItemName           = xe.zXPathValue("MongoDocumentItemName");
            _detailDataManager.DataSerializer = dataSerializer;
            //}

            UrlCache imageUrlCache = UrlCache.Create(xe.zXPathElement("Image"));

            //if (imageUrlCache != null)
            //{
            //    //imageUrlCache.GetUrlSubDirectory = GetDetailImageCacheUrlSubDirectory;
            //    //_detailDataManager.WebImageCacheManager = new WebImageCacheManager_v2(imageUrlCache);

            //    //_detailDataManager.WebImageCacheManager = new WebImageCacheManager_v3(imageUrlCache);
            //    //_detailDataManager.WebImageCacheManager.TraceException = true;
            //    //_detailDataManager.GetImageSubDirectory = GetDetailImageCacheUrlSubDirectory;
            //}

            _detailDataManager.WebLoadImageManager = new WebLoadImageManager_v2 <TDetailData>();
            if (imageUrlCache != null)
            {
                _detailDataManager.WebLoadImageManager.WebImageCacheManager = new WebImageCacheManager_v3(imageUrlCache);
                _detailDataManager.WebLoadImageManager.WebImageCacheManager.TraceException = true;
                //_detailDataManager.WebLoadImageManager.GetImageSubDirectory = GetDetailImageCacheUrlSubDirectory;
                _detailDataManager.GetImageSubDirectory = GetDetailImageCacheUrlSubDirectory;
            }
        }
예제 #4
0
        private static IConfiguration Configure()
        {
            var configuration = GetConfiguration();

            _store = new MongoDataStore(new DataStoreConfiguration
            {
                ConnectionString = configuration.GetConnectionString("mongo"),
                DatabaseName     = configuration["database"]
            });
            return(configuration);
        }
예제 #5
0
        protected override void ConfigureApplicationContainer(TinyIoCContainer container)
        {
            base.ConfigureApplicationContainer(container);

            var connectionString = AppSettings.ConnectionString;
            var client           = new MongoClient(connectionString);
            var server           = client.GetServer();
            var database         = server.GetDatabase(AppSettings.DatabaseName);

            _dataStore = new MongoDataStore(database);

            container.Register <ErrorCodes>();
        }
예제 #6
0
        private static IConfigurationRoot Configure()
        {
            var configuration = new ConfigurationBuilder()
                                .AddJsonFile("appsettings.json")
                                .Build();

            _store = new MongoDataStore(new DataStoreConfiguration
            {
                ConnectionString = configuration.GetConnectionString("mongo"),
                DatabaseName     = configuration["database"]
            });

            //_publisher = new Publisher(configuration.GetOptions<KafkaOptions>("kafka"));

            return(configuration);
        }
        protected virtual void CreateHeaderWebDataPageManager(XElement xe)
        {
            _headerDataPageManager = new WebDataPageManager_v4 <THeaderData>();

            UrlCache urlCache = UrlCache.Create(xe);

            if (urlCache != null)
            {
                urlCache.GetUrlSubDirectory = GetHeaderPageCacheUrlSubDirectory;
            }
            //Trace.WriteLine($"WebHeaderDetailMongoManagerBase_v2<THeaderData, TDetailData>.CreateHeaderWebDataPageManager() : {(urlCache != null ? "urlCache created" : "no urlCache")}");

            _headerDataPageManager.WebLoadDataManager = new WebLoadDataManager_v2 <IEnumDataPages <THeaderData> >();
            _headerDataPageManager.WebLoadDataManager.TraceException  = true;
            _headerDataPageManager.WebLoadDataManager.UrlCache        = urlCache;
            _headerDataPageManager.WebLoadDataManager.InitLoadFromWeb = InitLoadFromWeb;
            _headerDataPageManager.WebLoadDataManager.GetData         = GetHeaderPageData;
            //_headerDataPageManager.WebLoadDataManager.GetHttpRequestParameters = GetHttpRequestParameters;
            SetHttpRequestParameters(_headerDataPageManager.WebLoadDataManager.RequestParameters);
            _headerDataPageManager.GetKeyFromHttpRequest = GetHeaderKey;

            //_headerDataPageManager.DocumentStore = MongoDocumentStore<IEnumDataPages<THeaderData>>.Create(xe);
            //if (_headerDataPageManager.DocumentStore != null)
            //    _headerDataPageManager.DocumentStore.NominalType = _headerPageNominalType;

            _headerDataPageManager.DataStore = MongoDataStore.Create(xe);
            MongoDataSerializer <IEnumDataPages <THeaderData> > dataSerializer = new MongoDataSerializer <IEnumDataPages <THeaderData> >();

            dataSerializer.ItemName               = xe.zXPathValue("MongoDocumentItemName");
            dataSerializer.NominalType            = _headerPageNominalType;
            _headerDataPageManager.DataSerializer = dataSerializer;

            UrlCache imageUrlCache = UrlCache.Create(xe.zXPathElement("Image"));

            _headerDataPageManager.WebLoadImageManager = new WebLoadImageManager_v2 <IEnumDataPages <THeaderData> >();
            if (imageUrlCache != null)
            {
                _headerDataPageManager.WebLoadImageManager.WebImageCacheManager = new WebImageCacheManager_v3(imageUrlCache);
                _headerDataPageManager.WebLoadImageManager.WebImageCacheManager.TraceException = true;
                //_headerDataPageManager.WebLoadImageManager.GetImageSubDirectory = GetHeaderImageCacheUrlSubDirectory;
                _headerDataPageManager.GetImageSubDirectory = GetHeaderImageCacheUrlSubDirectory;
            }

            _headerDataPageManager.GetHttpRequestPageFunction = GetHttpRequestPage;
        }
예제 #8
0
        public void TestTrackiflyUsers()
        {
            // Use IOC instead...
            const string connectionString = "mongodb://localhost";
            var          client           = new MongoClient(connectionString);
            var          server           = client.GetServer();
            var          database         = server.GetDatabase("test");
            var          dataStore        = new MongoDataStore(database);
            var          j     = 1;
            var          users = new TrackingUsers(dataStore, new PasswordManager());

            for (int i = 0; i < 100; i++)
            {
                users.Add(string.Format("test{0}", j++), "test", "*****@*****.**");
                users.Add(string.Format("test{0}", j++), "test", "*****@*****.**");
                users.Add(string.Format("test{0}", j++), "test", "*****@*****.**");
            }
        }
예제 #9
0
        public void Setup()
        {
            var connectionString = AppSettings.ConnectionString;

            var requestRetentionValidator = new RequestRetentionValidator();
            var client     = new MongoClient(connectionString);
            var server     = client.GetServer();
            var database   = server.GetDatabase(AppSettings.DatabaseName);
            var dataStore  = new MongoDataStore(database);
            var errorCodes = new ErrorCodes();

            _dependencies = new object[]
            {
                requestRetentionValidator,
                client,
                server,
                database,
                dataStore,
                errorCodes,
            };
        }
예제 #10
0
        public void TestSaveLoadDelete()
        {
            const string connectionString = "mongodb://localhost";
            var          client           = new MongoClient(connectionString);
            var          server           = client.GetServer();
            var          database         = server.GetDatabase("test");
            var          dataStore        = new MongoDataStore(database);

            var name1 = Guid.NewGuid().ToString();
            var name2 = Guid.NewGuid().ToString();

            var user = new TrackingUser {
                Name = name1, Email = "*****@*****.**"
            };

            dataStore.Save(user);

            var loadedUser = dataStore.Query <TrackingUser>().FirstOrDefault(x => x.Name == name1);

            Assert.That(loadedUser != null && user.Name.Equals(loadedUser.Name));

            user.Name  = name2;
            user.Email = "*****@*****.**";
            dataStore.Save(user);

            loadedUser = dataStore.Query <TrackingUser>().FirstOrDefault(x => x.Name == name1);
            Assert.That(loadedUser == null);

            loadedUser = dataStore.Query <TrackingUser>().FirstOrDefault(x => x.Name == name2);
            Assert.That(loadedUser != null && user.Name.Equals(loadedUser.Name));

            dataStore.Delete <TrackingUser>(loadedUser.Id);

            loadedUser = dataStore.Query <TrackingUser>().FirstOrDefault(x => x.Name == name2);
            Assert.That(loadedUser == null);
        }
예제 #11
0
        private void Load_v2()
        {
            //BsonValue id = null;
            //BsonValue key = null;
            bool dataExists = false;

            _dataStore = _webDataManager_v4.DataStore;
            //_webLoadImageManager = _webDataManager_v4.WebLoadImageManager;
            bool useDocumentStore = _dataStore != null && !_webDataManager_v4.DesactivateDocumentStore;

            if (useDocumentStore)
            {
                _key = _webDataManager_v4._GetKeyFromHttpRequest(_request.HttpRequest);
                if (_dataStore.GenerateId)
                {
                    _id = _dataStore.GetId(_key);
                    if (_id != null)
                    {
                        dataExists = true;
                    }
                }
                else
                {
                    dataExists = _dataStore.Exists(_key);
                }
            }

            if (_dataStore == null || !dataExists || _request.ReloadFromWeb || _request.RefreshDocumentStore)
            {
                _LoadFromWeb_v2(_webDataManager_v4.WebLoadDataManager);
                if (!_result_v2.Success)
                {
                    return;
                }
            }
            else
            {
                _LoadFromDocumentStore_v2(_key);
            }

            // _error is not used actually
            //if (_error)
            //    return;

            if (_dataStore != null && _dataLoadedFromWeb)
            {
                BsonDocument document = Serialize();
                if (_dataStore.GenerateId)
                {
                    if (_id == null)
                    {
                        _id = _dataStore.GetNewId();
                    }
                    _data.zSetId(_id);
                    _dataStore.SaveWithId(_id, document);
                }
                else
                {
                    _dataStore.SaveWithKey(_key, document);
                }
            }

            //if (_webLoadImageManager == null)
            //    LoadImages_v1(_request.ImageRequest);
            //else
            //    LoadImages_v3(_request.ImageRequest);
            //LoadImages_v1(_request.ImageRequest);
            LoadImages_v3(_request.ImageRequest);
        }