Exemplo n.º 1
0
        public Company Create(Company company)
        {
            using (var session = client.StartSession())
            {
                session.StartTransaction();
                try
                {
                    var filter = Builders <CompaniesCounter> .Filter.Empty;
                    var update = new BsonDocument("$inc", new BsonDocument {
                        { "counter", 1 }
                    });
                    CompaniesCounter counterObj = _companiesCounter.FindOneAndUpdate <CompaniesCounter>(filter, update);
                    company.Id = counterObj.Counter + 1;
                    _companies.InsertOne(company);

                    session.CommitTransaction();
                }
                catch (System.Exception e)
                {
                    session.AbortTransaction();
                    return(null);
                }

                return(company);
            }
        }
Exemplo n.º 2
0
        public CompanyService(ICompaniesDatabaseSettings settings)
        {
            client = new MongoClient(settings.ConnectionString);
            var database = client.GetDatabase(settings.DatabaseName);

            _companies        = database.GetCollection <Company>(settings.CompaniesCollectionName);
            _companiesCounter = database.GetCollection <CompaniesCounter>(settings.CompaniesCounterCollectionName);
            //IompaniesCounter counter = _companiesCounter.Find<CompaniesCounter>(Builders<CompaniesCounter>.Filter.Empty);

            if (_companiesCounter.CountDocuments(Builders <CompaniesCounter> .Filter.Empty) <= 0)
            {
                CompaniesCounter counter = new CompaniesCounter
                {
                    Counter = 0
                };

                System.Diagnostics.Debug.WriteLine("CREATE COMPANIES COUNTER");
                _companiesCounter.InsertOne(counter);
            }
        }