private static SettingsBuilder <PartProfileFFF> CreateSettingsBuilder()
        {
            var settings        = PartProfileFactoryFFF.EnumerateDefaults().First();
            var settingsBuilder = new SettingsBuilder <PartProfileFFF>(settings, new NullLogger());

            return(settingsBuilder);
        }
        protected override void RunCallback()
        {
            CompanyDTO company   = null;
            var        dbFactory = new DbFactory();
            var        time      = new TimeService(dbFactory);
            var        log       = GetLogger();

            var now = time.GetAppNowTime();

            if (!time.IsBusinessDay(now))
            {
                return;
            }

            using (var db = dbFactory.GetRDb())
            {
                company = db.Companies.GetByIdWithSettingsAsDto(CompanyId);
            }

            var companyAddress     = new CompanyAddressService(company);
            var quantityManager    = new QuantityManager(log, time);
            var actionService      = new SystemActionService(log, time);
            var addressService     = new AddressService(null, companyAddress.GetReturnAddress(MarketIdentifier.Empty()), companyAddress.GetPickupAddress(MarketIdentifier.Empty()));
            var emailSmtpSettings  = SettingsBuilder.GetSmtpSettingsFromCompany(company, AppSettings.IsDebug, AppSettings.IsSampleLabels);
            var emailService       = new EmailService(GetLogger(), emailSmtpSettings, addressService);
            var cacheService       = new CacheService(log, time, actionService, quantityManager);
            var barcodeService     = new BarcodeService(log, time, dbFactory);
            var itemHistoryService = new ItemHistoryService(log, time, dbFactory);

            var autoCreateWMListingService = new AutoCreateWalmartListingService(log,
                                                                                 time,
                                                                                 dbFactory,
                                                                                 cacheService,
                                                                                 barcodeService,
                                                                                 emailService,
                                                                                 null,
                                                                                 itemHistoryService,
                                                                                 AppSettings.IsDebug);
            var autoCreateEBayListingService = new AutoCreateEBayListingService(log,
                                                                                time,
                                                                                dbFactory,
                                                                                cacheService,
                                                                                barcodeService,
                                                                                emailService,
                                                                                itemHistoryService,
                                                                                AppSettings.IsDebug);
            var autoCreateAmazonUSPrimeService = new AutoCreateAmazonUSPrimeListingService(log,
                                                                                           time,
                                                                                           dbFactory,
                                                                                           itemHistoryService);

            //autoCreateWMListingService.CreateListings();
            //log.Info("Walmart listings were created");

            //autoCreateEBayListingService.CreateListings();
            //log.Info("eBay listings were created");

            autoCreateAmazonUSPrimeService.CreateListings();
            log.Info("Amazon US Prime listings were created");
        }
Beispiel #3
0
        protected override void RunCallback()
        {
            CompanyDTO company   = null;
            var        dbFactory = new DbFactory();
            var        time      = new TimeService(dbFactory);

            using (var db = dbFactory.GetRDb())
            {
                company = db.Companies.GetByIdWithSettingsAsDto(CompanyId);
            }

            var companyAddress = new CompanyAddressService(company);
            var addressService = new AddressService(null, companyAddress.GetReturnAddress(MarketIdentifier.Empty()), companyAddress.GetPickupAddress(MarketIdentifier.Empty()));
            //Checking email service, sent test message
            var emailSmtpSettings = SettingsBuilder.GetSmtpSettingsFromCompany(company, AppSettings.IsDebug, AppSettings.IsSampleLabels);
            var emailService      = new EmailService(GetLogger(), emailSmtpSettings, addressService);

            var fromDate = time.GetAppNowTime().AddDays(-5);
            var emails   = new List <EmailOrderDTO>();

            using (var db = dbFactory.GetRDb())
            {
                emails = db.Emails.GetAllWithOrder(new EmailSearchFilter()
                {
                    ResponseStatus = (int)EmailResponseStatusFilterEnum.ResponseNeeded
                })
                         .Where(e => e.ReceiveDate > fromDate)
                         .ToList();
            }

            emailService.SendEmailStatusNotification(emails);
        }
Beispiel #4
0
        public void TestProcessSampleRemoveSignConfirmationEmail()
        {
            var smtpSettings  = SettingsBuilder.GetSmtpSettingsFromAppSettings();
            var emailService  = new EmailService(_log, smtpSettings, _addressService);
            var actionService = new SystemActionService(_log, _time);

            var emailProcessingService = new EmailProcessingService(
                _log,
                _dbFactory,
                emailService,
                actionService,
                _company,
                _time);

            var matchingResults = new List <EmailReadingResult>()
            {
                new EmailReadingResult()
                {
                    Email = new EmailDTO()
                    {
                        Message = "Remove signature confirmation",
                    },
                    MatchedIdList = new string[] { "701-3624993-3494603" }
                }
            };

            IList <IEmailRule> rules = new List <IEmailRule>()
            {
                new SetSystemTypesEmailRule(_log, _time),
                new AddMatchIdsEmailRule(_log, _time),
            };

            emailProcessingService.ProcessEmails(matchingResults, rules);
        }
Beispiel #5
0
        public void TestProcessSampleReturnRequestEmail()
        {
            var smtpSettings  = SettingsBuilder.GetSmtpSettingsFromAppSettings();
            var emailService  = new EmailService(_log, smtpSettings, _addressService);
            var actionService = new SystemActionService(_log, _time);

            var rule = new ReturnRequestEmailRule(_log, _time, emailService, actionService, _company, false, true);

            using (var db = _dbFactory.GetRWDb())
            {
                var email = db.Emails.Get(4687);

                var matchingResult = new EmailReadingResult()
                {
                    Email = new EmailDTO()
                    {
                        Subject = email.Subject,
                        Message = email.Message,
                    },
                    Status        = EmailMatchingResultStatus.New,
                    MatchedIdList = new string[] { "002-1602056-5981826" }
                };

                rule.Process(db, matchingResult);
            }
        }
Beispiel #6
0
        public void ReadSentEmails()
        {
            var imapSettings  = SettingsBuilder.GetImapSettingsFromCompany(_company);
            var smtpSettings  = SettingsBuilder.GetSmtpSettingsFromCompany(_company);
            var emailService  = new EmailService(_log, smtpSettings, _addressService);
            var actionService = new SystemActionService(_log, _time);

            var emailProcessing = new EmailProcessingService(_log, _dbFactory,
                                                             emailService,
                                                             actionService,
                                                             _company,
                                                             _time);

            IList <IEmailRule> sentRules = new List <IEmailRule>()
            {
                new SetSystemTypesEmailRule(_log, _time),
                new AddMatchIdsEmailRule(_log, _time),
                new SetAnswerIdEmailRule(_log, _time),
                new SetSentByEmailRule(_log, _time)
            };

            var email = new EmailReaderService(imapSettings, _log, _dbFactory, _time);

            email.ReadEmails(EmailHelper.SentFolder, DateTime.Now.AddDays(-15), null, imapSettings.AcceptingToAddresses, null);
            emailProcessing.ProcessEmails(email.EmailProcessResultList, sentRules);
        }
Beispiel #7
0
        public void ReadInboxEmails()
        {
            var imapSettings  = SettingsBuilder.GetImapSettingsFromCompany(_company);
            var smtpSettings  = SettingsBuilder.GetSmtpSettingsFromCompany(_company);
            var emailService  = new EmailService(_log, smtpSettings, _addressService);
            var actionService = new SystemActionService(_log, _time);

            var emailProcessing = new EmailProcessingService(_log, _dbFactory,
                                                             emailService,
                                                             actionService,
                                                             _company,
                                                             _time);

            IList <IEmailRule> inboxRules = new List <IEmailRule>()
            {
                new SetSystemTypesEmailRule(_log, _time),
                new AddMatchIdsEmailRule(_log, _time),
                new SetAnswerIdEmailRule(_log, _time), //NOTE: also using in Inbox for processing Amazon autocommunicate emails
                //new FeedbackBlackListEmailRule(_log, _time),
                new ReturnRequestEmailRule(_log, _time, emailService, actionService, _company, true, false),
                new OrderDeliveryInquiryEmailRule(_log, _time, emailService, actionService),
                new AddressNotChangedEmailRule(_log, _time, emailService, actionService),
                //new DhlInvoiceEmailRule(_log, _time, _dbFactory),
                //new AddCommentEmailRule(_log, actionService, _time),
                new PrepareBodyEmailRule(_log, _time),
            };

            var email = new EmailReaderService(imapSettings, _log, _dbFactory, _time);

            email.ReadEmails(EmailHelper.InboxFolder, DateTime.Now.AddDays(-5), imapSettings.AcceptingToAddresses, null, null);
            emailProcessing.ProcessEmails(email.EmailProcessResultList, inboxRules);
        }
Beispiel #8
0
        protected override void RunCallback()
        {
            var        dbFactory = new DbFactory();
            var        time      = new TimeService(dbFactory);
            var        log       = GetLogger();
            CompanyDTO company   = null;

            using (var db = dbFactory.GetRDb())
            {
                company = db.Companies.GetByIdWithSettingsAsDto(CompanyId);
            }

            var companyAddress    = new CompanyAddressService(company);
            var addressService    = new AddressService(null, companyAddress.GetReturnAddress(MarketIdentifier.Empty()), companyAddress.GetPickupAddress(MarketIdentifier.Empty()));
            var emailSmtpSettings = SettingsBuilder.GetSmtpSettingsFromCompany(company, AppSettings.IsDebug, AppSettings.IsSampleLabels);
            var emailService      = new EmailService(GetLogger(), emailSmtpSettings, addressService);

            var kioskBarcodeService = new KioskBarcodeService(dbFactory,
                                                              emailService,
                                                              time,
                                                              log);

            kioskBarcodeService.CheckOrders();

            log.Info("After check orders");
        }
        public void Apply_ShouldApplyUserWhitelistItems()
        {
            //---------------Set up test pack-------------------
            var blacklist = GetRandomCollection(GetRandomHostname, 2, 5);
            var whitelist = GetRandomCollection(GetRandomHostname, 2, 5);
            var settings  = SettingsBuilder.Create()
                            .WithRedirectIp(GetRandomIPv4Address())
                            .WithWhitelist(whitelist.ToArray())
                            .WithBlacklist(blacklist.ToArray())
                            .Build();
            var hostFile = Substitute.For <IHostFile>();
            var factory  = CreateHostFileFactoryFor(hostFile);
            var sut      = Create(settings, hostFileFactory: factory);

            //---------------Assert Precondition----------------

            //---------------Execute Test ----------------------
            sut.Apply();

            //---------------Test Result -----------------------
            Received.InOrder(() =>
            {
                blacklist.ForEach(e =>
                                  hostFile.Redirect(e, settings.RedirectIp));
                whitelist.ForEach(e =>
                                  hostFile.Whitelist(e));
                hostFile.Persist();
            });
        }
        public void Apply_ShouldNotPassFailedResultsOnToCacheManager()
        {
            //---------------Set up test pack-------------------
            var source1 = GetRandomHttpUrl();
            var source2 = GetRandomHttpUrl();
            var config  = SettingsBuilder.Create()
                          .WithSources(source1, source2)
                          .Build();
            var downloader = Substitute.For <IFileDownloader>();
            var result1    = GetRandomBytes();

            downloader.SetDownloadResult(source1, result1);
            downloader.SetFailedDownloadResultFor(source2);

            var cacheManager = Substitute.For <IBlocklistCacheManager>();
            var sut          = Create(config, downloader, blocklistCacheManager: cacheManager);

            //---------------Assert Precondition----------------

            //---------------Execute Test ----------------------
            sut.Apply();

            //---------------Test Result -----------------------
            cacheManager.Received().Set(source1, result1);
            cacheManager.DidNotReceive().Set(source2, Arg.Any <byte[]>());
        }
Beispiel #11
0
        protected override void ExecuteTask()
        {
            var currentDirectory = Directory.GetCurrentDirectory();

            try
            {
                Directory.SetCurrentDirectory(WorkingDir);

                var settings  = new SettingsBuilder().Build();
                var service   = new TrelloServiceBuilder(settings).Build();
                var board     = new GetBoardByName(service).Execute(settings.Username, Board);
                var cards     = new GetCards(service).Execute(board, List);
                var gitRunner = new GitRunner(new CommandRunner(), settings.GitCommand);

                RunMerge(gitRunner, cards);
            }
            catch (Exception exception)
            {
                throw new BuildException(exception.Message, Location);
            }
            finally
            {
                Directory.SetCurrentDirectory(currentDirectory);
            }
        }
Beispiel #12
0
        protected override void RunCallback()
        {
            CompanyDTO company   = null;
            var        dbFactory = new DbFactory();
            var        time      = new TimeService(dbFactory);
            var        log       = GetLogger();

            var now = time.GetAppNowTime();

            if (!time.IsBusinessDay(now))
            {
                return;
            }

            using (var db = dbFactory.GetRDb())
            {
                company = db.Companies.GetByIdWithSettingsAsDto(CompanyId);
            }

            var autoPurchaseTime = AppSettings.OverdueAutoPurchaseTime;

            var companyAddress = new CompanyAddressService(company);
            var addressService = new AddressService(null, companyAddress.GetReturnAddress(MarketIdentifier.Empty()), companyAddress.GetPickupAddress(MarketIdentifier.Empty()));
            //Checking email service, sent test message
            var emailSmtpSettings = SettingsBuilder.GetSmtpSettingsFromCompany(company, AppSettings.IsDebug, AppSettings.IsSampleLabels);
            var emailService      = new EmailService(GetLogger(), emailSmtpSettings, addressService);

            var checker = new AlertChecker(log, time, dbFactory, emailService, company);

            using (var db = dbFactory.GetRWDb())
            {
                checker.CheckOverdue(db, now, autoPurchaseTime);
            }
        }
Beispiel #13
0
        public void Build_WhenArgumentAreAfterInMemory_ShouldUseArgumentBinder()
        {
            var section    = nameof(ICommandLineInterface).TrimStart('I');
            var collection = new InMemoryCollection();

            collection.Add(section, "name", "name");
            collection.Add(section, "Age", "15");

            var sut = SettingsBuilder.CreateBuilder(x =>
                                                    x.AddInMemoryCollection(collection));

            var result = sut.GetSettings <ICommandLineInterface>();

            Assert.Equal("name", result.Name);
            Assert.Equal(15, result.Age);

            sut = SettingsBuilder.CreateBuilder(x =>
                                                x.AddInMemoryCollection(collection)
                                                .AddArguments(Args.Split(' '),
                                                              o => o.SetCaseSensitivity(false)));

            result = sut.GetSettings <ICommandLineInterface>();

            Assert.Equal("value", result.Name);
            Assert.Equal(3, result.Age);
        }
        public static SettingsBuilder UseAppSettingsXml(this SettingsBuilder settingsBuilder, string prefix = null, bool includeConnectionStrings = true)
        {
            var dictionary = new AppSettingsXmlSource().ToSettingsDictionary();

            settingsBuilder.UseSettingsDictionary(dictionary);
            return(settingsBuilder);
        }
Beispiel #15
0
        public void SettingsBuilderShouldThrowOnInvalidInput()
        {
            var    settingsBuilder = new SettingsBuilder(A.Fake <ILogger>(), A.Fake <ISettings>());
            Action build           = () => settingsBuilder.BuildSettings(new[] { "foobar", "shizzle" });

            build.Should().Throw <IndexOutOfRangeException>();
        }
        public void Can_delete_and_add_setting_entries()
        {
            var settings = context.Set <Setting>();

            settings.Any().ShouldBeFalse();

            var entries  = GetDefaultSettingEntries();
            var migrator = new SettingsMigrator(context);

            migrator.Migrate(entries);

            var builder = new SettingsBuilder();

            builder.Delete("type1.setting1", "type2.setting1");
            migrator.Migrate(builder.Build());

            settings.ToList().Count.ShouldEqual(6);

            builder.Reset();
            builder.DeleteGroup("type1");
            migrator.Migrate(builder.Build());
            settings.ToList().Count.ShouldEqual(3);

            builder.Reset();
            builder.Add("type3.Setting1", true);
            builder.Add("type3.Setting2", 20);
            migrator.Migrate(builder.Build());
            var db = settings.ToList();

            db.Count.ShouldEqual(5);

            var st = settings.Where(x => x.Name == "type3.Setting2").FirstOrDefault();

            st.Value.ShouldEqual("20");
        }
Beispiel #17
0
        protected override void RunCallback()
        {
            var        dbFactory = new DbFactory();
            CompanyDTO company   = null;

            using (var db = dbFactory.GetRDb())
            {
                company = db.Companies.GetByIdWithSettingsAsDto(CompanyId);
            }

            var time           = new TimeService(dbFactory);
            var addressService = AddressService.Default;

            var emailSmtpSettings = SettingsBuilder.GetSmtpSettingsFromCompany(company, AppSettings.IsDebug, AppSettings.IsSampleLabels);

            var emailService  = new EmailService(GetLogger(), emailSmtpSettings, addressService);
            var actionService = new SystemActionService(GetLogger(), time);

            emailService.ProcessEmailActions(dbFactory,
                                             time,
                                             company,
                                             actionService);

            emailService.AutoAnswerEmails(dbFactory,
                                          time,
                                          company);
        }
Beispiel #18
0
        private static void BuildViewModelSettingsForEntity(Type entity, RenderSettings settings,
                                                            List <Type> allEntities)
        {
            var attr = entity.GetCustomAttribute <ViewModelAttribute>();
            var vms  = new ViewModelSettings();

            vms.EntityType(entity.Name);
            vms.EntityNamespace(entity.Namespace);
            vms.HasPublicEntity(entity.IsPublic);

            if (attr != null)
            {
                ApplyViewModelAttribute(vms, attr);
            }

            // add or update the view model on its namespace settings
            SettingsBuilder.IncludeViewModelSettings(settings, vms);

            // find and build view model rendering settings for all relevant properties in the entity
            var props = DiscoverViewModelProperties(vms, entity);

            foreach (var p in props)
            {
                ConfigureViewModelProperty(p, vms, allEntities);
            }
        }
Beispiel #19
0
        protected override void RunCallback()
        {
            CompanyDTO company   = null;
            var        dbFactory = new DbFactory();
            var        time      = new TimeService(dbFactory);
            var        settings  = new SettingsService(dbFactory);
            var        log       = GetLogger();

            using (var db = dbFactory.GetRDb())
            {
                company = db.Companies.GetByIdWithSettingsAsDto(CompanyId);
            }

            var companyAddress    = new CompanyAddressService(company);
            var addressService    = new AddressService(null, companyAddress.GetReturnAddress(MarketIdentifier.Empty()), companyAddress.GetPickupAddress(MarketIdentifier.Empty()));
            var emailSmtpSettings = SettingsBuilder.GetSmtpSettingsFromCompany(company, AppSettings.IsDebug, AppSettings.IsSampleLabels);

            var actionService = new SystemActionService(log, time);
            var emailService  = new EmailService(log, emailSmtpSettings, addressService);

            var lastSyncDate = settings.GetOrdersAdjustmentDate(_api.Market, _api.MarketplaceId);

            using (var db = dbFactory.GetRWDb())
            {
                LogWrite("Last sync date=" + lastSyncDate);

                if (!lastSyncDate.HasValue ||
                    (time.GetUtcTime() - lastSyncDate) > _betweenProcessingInverval)
                {
                    var updater = new BaseOrderRefundService(_api, actionService, emailService, log, time);
                    updater.ProcessRefunds(db, null);
                    settings.SetOrdersAdjustmentDate(time.GetUtcTime(), _api.Market, _api.MarketplaceId);
                }
            }
        }
        public void Can_delete_and_add_setting_entries()
        {
            var settings = context.Set<Setting>();
            settings.Any().ShouldBeFalse();

            var entries = GetDefaultSettingEntries();
            var migrator = new SettingsMigrator(context);
            migrator.Migrate(entries);

            var builder = new SettingsBuilder();
            builder.Delete("type1.setting1", "type2.setting1");
            migrator.Migrate(builder.Build());

            settings.ToList().Count.ShouldEqual(6);

            builder.Reset();
            builder.DeleteGroup("type1");
            migrator.Migrate(builder.Build());
            settings.ToList().Count.ShouldEqual(3);

            builder.Reset();
            builder.Add("type3.Setting1", true);
            builder.Add("type3.Setting2", 20);
            migrator.Migrate(builder.Build());
            var db = settings.ToList();
            db.Count.ShouldEqual(5);

            var st = settings.Where(x => x.Name == "type3.Setting2").FirstOrDefault();
            st.Value.ShouldEqual("20");

            settings.RemoveRange(db);
            context.SaveChanges();
        }
Beispiel #21
0
        public void UntypedAccessDemo()
        {
            //todo: refactor, break out into setup and 3 different tests for each assert
            var settings = new SettingsBuilder()
                           .UseSettingsDictionary(new SettingsDictionary()
            {
                ["CoffeeRefillInterval"] = "00:05:00"
            })
                           .Build();

            var key = "CoffeeRefillInterval";

            //Notice how the return type is derived from the default callback
            var refillInterval = settings.Get(key, () => TimeSpan.FromMinutes(20));

            //Expect he value from the dictionary, not the default
            Assert.AreEqual(TimeSpan.FromMinutes(5), refillInterval);

            //no key, no default. BOOM!
            Assert.Throws <KeyNotFoundException>(
                () => refillInterval = settings.Get <TimeSpan>(key + "ouch"));

            //key missing, default kicks in
            var defaultTimespan = TimeSpan.FromSeconds(42);

            refillInterval = settings.Get <TimeSpan>(key + "ouch", () => defaultTimespan);
            Assert.AreEqual(defaultTimespan, refillInterval);
        }
Beispiel #22
0
        public void EnvironmentChangeFiresPropertyChangeEvents()
        {
            var settings = new SettingsBuilder()
                           .UseSettingsDictionary(_settingsDictionary)
                           .Build <MySettings>(prefix: "");

            //Set up callback to record all property change notifications
            var propertyChangeNotifications = new List <string>();

            settings.PropertyChanged += (sender, args) => propertyChangeNotifications.Add(args.PropertyName);

            //Initial value with no Environment set
            Assert.AreEqual("Key", settings.Key);

            //switching environment changes a
            settings.SetEnvironment("prod");
            Assert.AreEqual("PROD", settings.Key);
            Assert.AreEqual("Key", propertyChangeNotifications.Single());

            //changing env but no properties will change
            settings.SetEnvironment("prod2");
            Assert.AreEqual("PROD", settings.Key);
            //no changes so we shouldn't have received additional events
            Assert.AreEqual("Key", propertyChangeNotifications.Single());
        }
        public void Build_WhenAddGlobalConverter_ShouldReturnConverterValue()
        {
            var sut    = SettingsBuilder.CreateBuilder(x => x.AddTypeConverter(new GuidSettingsConvertor()));
            var result = sut.GetSettings <IGuidInterface>();

            Assert.NotEqual(Guid.Empty, result.Guid);
        }
        public void Build_WhenAddLocalConverter_ShouldReturnConverterValue()
        {
            var sut    = SettingsBuilder.CreateBuilder();
            var result = sut.GetSettings <IGuidInterfaceWithConversionAttribute>();

            Assert.NotEqual(Guid.Empty, result.Guid);
        }
Beispiel #25
0
        public void CanRetrieveIPEndPointFromSettings()
        {
            var settings = new SettingsBuilder()
                           .UseSettingsDictionary(_settingsDictionary)
                           .Build <MySettings>(prefix: "");

            Assert.AreEqual(new IPEndPoint(IPAddress.Parse("127.0.0.1"), 80), settings.ServerEndPoint);
        }
Beispiel #26
0
        public void GetSettings_BuildingInterfaceNotFromAssembly_ShouldReturnInstanceWithValues()
        {
            var sut = SettingsBuilder.CreateBuilder();

            var result = sut.GetSettings <ISomeInterface>();

            Assert.Equal(result.Name, SomeName);
        }
Beispiel #27
0
        public void CanLoadRequiredFile()
        {
            var settings = new SettingsBuilder()
                           .UseAppSettingsJson("appsettings.json", required: true)
                           .Build();

            Assert.DoesNotThrow(() => settings.Get("AllowedHosts"));
        }
Beispiel #28
0
        public void SettingsBuilderShouldBuildExpectedSettings(string[] args, Settings expectedSettings)
        {
            var settings        = new Settings();
            var settingsBuilder = new SettingsBuilder(A.Fake <ILogger>(), settings);

            settingsBuilder.BuildSettings(args);
            settings.Should().BeEquivalentTo(expectedSettings);
        }
Beispiel #29
0
        public void BindingPath()
        {
            var settings = new SettingsBuilder()
                           .UseSettingsDictionary(_settingsDictionary)
                           .Build <MySettings>(prefix: "");

            Assert.AreEqual(TimeSpan.FromMinutes(42), settings.MyTimeSpan);
        }
        public async Task Build_DropEverything_BuildsDatabase()
        {
            // Arrange
            var settings =
                new SettingsBuilder()
                .AddConvention(new CamelCaseElementNameConvention(), x => true)
                .AddDatabase("test1")
                .WithConnectionString("mongodb://localhost:27017")
                .DropDatabaseFirst()
                .AddCollection("col1", true, "Collection1.json")
                .AddCollection <Person>("people", true, new PersonDataProvider())
                .AddDatabase("test2")
                .WithConnectionString("mongodb://localhost:27017")
                .DropDatabaseFirst()
                .AddCollection("col2", true, "Collection2.json")
                .Build();

            var sut = new MongoSessionManager(settings);

            this.DbNames.Add("test1");
            this.DbNames.Add("test2");


            // Act
            var connections = sut.Build();


            // Assert
            Assert.Single(connections);

            this.Client = connections["mongodb://localhost:27017"];

            var test1    = this.Client.GetDatabase("test1");
            var col1     = test1.GetCollection <BsonDocument>("col1");
            var results1 = (await col1.FindAsync <BsonDocument>(new BsonDocument())).ToList();

            Assert.Equal(2, results1.Count);
            Assert.Equal("Value1b", results1[0].GetElement("Col1b").Value);
            Assert.Equal("Value2b", results1[0].GetElement("Col2b").Value);
            Assert.Equal("Value3b", results1[1].GetElement("Col1b").Value);
            Assert.Equal("Value4b", results1[1].GetElement("Col2b").Value);

            var peopleCol = test1.GetCollection <BsonDocument>("people");
            var people    = (await peopleCol.FindAsync <Person>(new BsonDocument())).ToList();

            Assert.Equal(3, people.Count);
            var data = new PersonDataProvider().GetData().ToList();

            Assert.True(people[0].IsEqual(data[0] as Person));
            Assert.True(people[1].IsEqual(data[1] as Person));
            Assert.True(people[2].IsEqual(data[2] as Person));

            var test2    = this.Client.GetDatabase("test2");
            var col2     = test2.GetCollection <BsonDocument>("col2");
            var results2 = (await col2.FindAsync <BsonDocument>(new BsonDocument())).ToList();

            Assert.Equal(2, results2.Count);
        }
Beispiel #31
0
 public void CanReferenceOptionalNonExistentFileWithVariableExpansion()
 {
     Assert.DoesNotThrow(() =>
     {
         var settings = new SettingsBuilder()
                        .UseAppSettingsJson("nonexistent.${ENV}.json", required: false)
                        .Build();
     });
 }
		public static void MigrateSettings(this SmartObjectContext ctx, Action<SettingsBuilder> fn)
		{
			Guard.ArgumentNotNull(() => ctx);
			Guard.ArgumentNotNull(() => fn);

			var builder = new SettingsBuilder();
			fn(builder);
			var entries = builder.Build();

			var migrator = new SettingsMigrator(ctx);
			migrator.Migrate(entries);
		}
        private IEnumerable<SettingEntry> GetDefaultSettingEntries()
        {
            var builder = new SettingsBuilder();
            builder.Add("Type1.Setting1", true);
            builder.Add("Type1.Setting2", 10);
            builder.Add("Type1.Setting3", "SomeString");
            builder.Add("Type1.Setting4", DateTime.Now);
            builder.Add("Type2.Setting1", false);
            builder.Add("Type2.Setting2", 5);
            builder.Add("Type2.Setting3", "SomeString2");
            builder.Add("Type2.Setting4", DateTime.UtcNow);

            return builder.Build();
        }