示例#1
0
 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();
 }
示例#2
0
        // 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
        }
示例#3
0
 public LockRepository(MongoRepositorySettings settings)
     : base(settings, "locks")
 {
 }
示例#4
0
        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);
            }
        }
示例#5
0
 public UserRepository(MongoRepositorySettings settings) : base(settings, "users")
 {
 }