Wriju's BLOG

.NET, Cloud and everything

DocumentDB Add and Read – Simple Approach

I wanted to create a simple sample which would Add and Read records in DocumentDB.

Created one Windows Forms Application, added NuGet Package


Then in the Windows Forms I have added simple Text box to enter data and grid to display it.


The data model would look like, this has dependency

using Newtonsoft.Json;


//Employee Data Model
public class Employee
    [JsonProperty(PropertyName = "id")]
    public string id { get; set; }

    [JsonProperty(PropertyName = "FullName")]
    public string FullName { get; set; }

After that behind the button’s click event, with dependencies

using Microsoft.Azure.Documents;
using Microsoft.Azure.Documents.Client;
using Microsoft.Azure.Documents.Linq; 

The actual working code,

//Intializing the connection using the Uri and Key
var client = new DocumentClient(new Uri("https://gids.documents.azure.com:443/"), 

//Give a name to a database and create if it does not exist
string databaseId = "hrdatabase";
var db = client.CreateDatabaseQuery()
            .Where(d => d.Id == databaseId)

if (db == null)
    db = client.CreateDatabaseAsync(new Database { Id = databaseId }).Result;

//Get a Collection and create if does  not exists
string collectionId = "employee_test";
var col = client.CreateDocumentCollectionQuery(db.SelfLink)
                .Where(c => c.Id == collectionId)

if (col == null)
    var collectionSpec = new DocumentCollection { Id = collectionId };
    var requestOptions = new RequestOptions { OfferType = "S1" };

    col = client.CreateDocumentCollectionAsync(db.SelfLink, collectionSpec, requestOptions).Result;

//There is a input text box, then insert the data (any format)
if (txtFullName.Text.Trim() != "") { 
    //Insert Record
    Employee emp = new Employee() { FullName = txtFullName.Text };
    client.CreateDocumentAsync(col.SelfLink, emp);
    MessageBox.Show("Records Added");
    txtFullName.Text = "";

var dataList = client.CreateDocumentQuery<Employee>(col.DocumentsLink).AsEnumerable();
dataGridEmployee.DataSource = dataList.ToList();

This works pretty well. I wanted to just let you know how simple it is. I did not follow any pattern. You can only become Formula One driver if you know the driving. Back to basic.