Esempio n. 1
0
        static void Main(string[] args)
        {
            IDocumentDbInitializer initializer = new DocumentDbInitializer();

            try
            {
                Client = initializer.GetClient(EndpointUrl, PrimaryKey);
                Task program = DemoAsync(args);
                program.Wait();
            }
            catch (DocumentClientException de)
            {
                Exception baseException = de.GetBaseException();
                Console.WriteLine("{0} error occurred: {1}, Message: {2}", de.StatusCode, de.Message,
                                  baseException.Message);
            }
            catch (Exception e)
            {
                Exception baseException = e.GetBaseException();
                Console.WriteLine("Error: {0}, Message: {1}", e.Message, baseException.Message);
            }
            finally
            {
                Console.WriteLine("End of demo, press any key to exit.");
                Console.ReadKey();
            }
        }
Esempio n. 2
0
        static void Main(string[] args)
        {
            try
            {
                IDocumentDbInitializer init = new DocumentDbInitializer();

                Client = init.GetClient(EndpointUrl, PrimaryKey);

                Program p = new Program();
                p.DocumentDBDemoWithUOW().Wait();
            }
            catch (DocumentClientException de)
            {
                Exception baseException = de.GetBaseException();
                Console.WriteLine("{0} error occurred: {1}, Message: {2}", de.StatusCode, de.Message, baseException.Message);
            }
            catch (Exception e)
            {
                Exception baseException = e.GetBaseException();
                Console.WriteLine("Error: {0}, Message: {1}", e.Message, baseException.Message);
            }
            finally
            {
                Console.WriteLine("Demo is Done. Press any key to continue");
                Console.ReadKey();
            }
        }
Esempio n. 3
0
        public Logic(string docDBEndpoint, string docDBKey, string docDbName, string partitionKeyName, string docDbCollectionName)
        {
            _partitionKeyName = partitionKeyName;

            var initializer = new DocumentDbInitializer();

            //TODO check out connection policy
            var client = initializer.GetClient(docDBEndpoint, docDBKey);

            _repository = new DocumentDbRepository <WordsData>(client, docDbName, _partitionKeyName, () => docDbCollectionName);
        }
Esempio n. 4
0
        static void Main(string[] args)
        {
            IDocumentDbInitializer init = new DocumentDbInitializer();
            string endpointUrl          = ConfigurationManager.AppSettings["azure.documentdb.endpointUrl"];
            string authorizationKey     = ConfigurationManager.AppSettings["azure.documentdb.authorizationKey"];

            //Get the DB client
            Client = init.GetClient(endpointUrl, authorizationKey);
            Task t = MainAsync(args);

            t.Wait();
        }
Esempio n. 5
0
        protected Repository(IDataBaseManager dataBaseManager)
        {
            IDocumentDbInitializer init = new DocumentDbInitializer();

            string endpoint   = dataBaseManager.GetDataBaseEndPoint();
            string key        = dataBaseManager.GetDataBaseKey();
            string databaseId = dataBaseManager.GetDataBaseId();

            var client = init.GetClient(endpoint, key);

            _documentDbRepository = new DocumentDbRepository <T>(client, databaseId);
        }
Esempio n. 6
0
        private static async Task Main(string[] args)
        {
            IDocumentDbInitializer init = new DocumentDbInitializer();

            var configuration = new ConfigurationBuilder()
                .AddJsonFile("appsettings.json")
                .Build();

            string endpointUrl = configuration["endpointUrl"];
            string authorizationKey = configuration["authorizationKey"];

            // get the Azure DocumentDB client
            Client = init.GetClient(endpointUrl, authorizationKey, new ConnectionPolicy());

            // Run demo
            string databaseId = configuration["databaseId"];

            // create repository for persons and set Person.FullName property as identity field (overriding default Id property name)
            DocumentDbRepository<Person> repo = new DocumentDbRepository<Person>(Client, databaseId, null, p => p.FullName);
            
            // output all persons in our database, nothing there yet
            await PrintPersonCollection(repo);

            // create a new person
            Person matt = new Person
            {
                FirstName = "m4tt",
                LastName = "TBA",
                BirthDayDateTime = new DateTime(1990, 10, 10),
                PhoneNumbers =
                    new Collection<PhoneNumber>
                    {
                        new PhoneNumber {Number = "555", Type = "Mobile"},
                        new PhoneNumber {Number = "777", Type = "Landline"}
                    }
            };

            // add person to database's collection (if collection doesn't exist it will be created and named as class name -it's a convenction, that can be configured during initialization of the repository)
            matt = await repo.AddOrUpdateAsync(matt);

            // create another person
            Person jack = new Person
            {
                FirstName = "Jack",
                LastName = "Smith",
                BirthDayDateTime = new DateTime(1990, 10, 10),
                PhoneNumbers = new Collection<PhoneNumber>()
            };

            // add jack to collection
            jack = await repo.AddOrUpdateAsync(jack);

            // should output person and his two phone numbers
            await PrintPersonCollection(repo);

            // change birth date
            matt.BirthDayDateTime -= new TimeSpan(500, 0, 0, 0);

            // remove landline phone number
            matt.PhoneNumbers.RemoveAt(1);

            // should update person
            await repo.AddOrUpdateAsync(matt);

            // should output Matt with just one phone number
            await PrintPersonCollection(repo);

            // get Matt by his Id
            Person justMatt = await repo.GetByIdAsync(matt.FullName);
            Console.WriteLine("GetByIdAsync result: " + justMatt);

            // ... or by his first name
            Person firstMatt = await repo.FirstOrDefaultAsync(p => p.FirstName.Equals("matt", StringComparison.OrdinalIgnoreCase));
            Console.WriteLine("First: " + firstMatt);

            // query all the smiths
            var smiths = (await repo.WhereAsync(p => p.LastName.Equals("Smith"))).ToList();
            Console.WriteLine(smiths.Count);

            // use IQueryable, as for now supported expressions are 'Queryable.Where', 'Queryable.Select' & 'Queryable.SelectMany'
            var allSmithsPhones =
                (await repo.QueryAsync()).SelectMany(p => p.PhoneNumbers).Select(p => p.Type);
            foreach (var phone in allSmithsPhones)
            {
                Console.WriteLine(phone);
            }

            // count all persons
            var personsCount = await repo.CountAsync();

            // count all jacks
            var jacksCount = await repo.CountAsync(p => p.FirstName == "Jack");

            // remove matt from collection
            await repo.RemoveAsync(matt.FullName);

            // remove jack from collection
            await repo.RemoveAsync(jack.FullName);

            // should output nothing
            await PrintPersonCollection(repo);
            
            // remove collection
            await repo.RemoveAsync();
        }