public MongoDBFixture() { // Replace this connection string with whatever your mongo connection string is. // Running a local mongo container in docker is easiest to test this out _mongoConnectionString = "mongodb://localhost:27017"; _eventMongoSettings = new MongoRepositorySettings("CQRSEventsDB", "Events"); _listProjectionMongoSettings = new MongoRepositorySettings("CQRSProjectionsDB", "InventoryItemList"); _detailProjectionMongoSettings = new MongoRepositorySettings("CQRSProjectionsDB", "InventoryItemDetail"); Mediator = new Mediator(); }
// This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { services.AddMvc(); // Swagger services.AddSwaggerGen(c => { c.SwaggerDoc("v1", new Info { Title = "Repository RESTful API", Version = "v1", Description = "仓储模式实现案例 RESTful API.", TermsOfService = "None", Contact = new Contact { Name = "Sunny Chen", Email = "*****@*****.**", Url = "https://github.com/daxnet" }, License = new License { Name = "Apache License 2.0", Url = "https://www.apache.org/licenses/LICENSE-2.0" } }); var basePath = PlatformServices.Default.Application.ApplicationBasePath; var xml = Path.Combine(basePath, "RepositorySample.Service.xml"); if (File.Exists(xml)) { c.IncludeXmlComments(xml); } }); #region MongoDB 仓储实现 var mongoHost = Configuration["mongo:host"]; var mongoPort = Convert.ToInt32(Configuration["mongo:port"]); var mongoDatabase = Configuration["mongo:database"]; var mongoRepositorySettings = new MongoRepositorySettings(mongoHost, mongoPort, mongoDatabase); services.AddSingleton(mongoRepositorySettings); services.AddTransient <IRepositoryContext, MongoRepositoryContext>(); #endregion #region 内存数据库 仓储实现 // services.AddTransient<IRepositoryContext, InMemoryRepositoryContext>(); #endregion }
public LockRepository(MongoRepositorySettings settings) : base(settings, "locks") { }
static async Task MainAsync() { try { Console.WriteLine("Pi & Mash."); Console.WriteLine("Mongo Data Example"); //create repository string connectionString = "mongodb://localhost:27017/pimongotest?strict=false&poolsize=100&lifetime=1"; string database = "pimongotest"; Console.WriteLine("Connection String: {0}", connectionString); Console.WriteLine("Database: {0}", database); IMongoRepositorySettings repositorySettings = new MongoRepositorySettings(connectionString, database); IMongoDbRepository mongoDbRepository = new MongoDbRepository(repositorySettings); Boolean quitNow = false; while (!quitNow) { string command = Console.ReadLine(); string[] commandParts = command.Split(' '); string mainCommand = commandParts[0]; switch (mainCommand) { case "help": ShowHelp(); break; case "conn": connectionString = commandParts[1]; database = commandParts[2]; repositorySettings = new MongoRepositorySettings(connectionString, database); mongoDbRepository = new MongoDbRepository(repositorySettings); Console.WriteLine("Connection String: {0}", connectionString); Console.WriteLine("Database: {0}", database); break; case "add": string name = (commandParts.Length > 1) ? commandParts[1] : "New Item: " + DateTime.Now.ToShortDateString(); //add item await AddItem(mongoDbRepository, name); break; case "list": //list items await List(mongoDbRepository); break; case "clear": Console.Clear(); Console.WriteLine("Pi & Mash."); Console.WriteLine("Mongo Data Example"); break; case "quit": quitNow = true; break; default: break; } Console.WriteLine("-------------------------------"); } } catch (Exception ex) { Console.Write("Exception: {0}", ex.Message); } }
public UserRepository(MongoRepositorySettings settings) : base(settings, "users") { }