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/"),
"eBuaGTYZJ+zjyCxbIWNbT5mGgI75Uo42su6PMbK1W6zT0CbaxqfBIXIM/UlZ6AXaBsUscNZN0fFTeDJaxAsSzg==");
//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)
.AsEnumerable()
.FirstOrDefault();
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)
.AsEnumerable()
.FirstOrDefault();
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 = "";
}
//Display
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.
Namoskar!!!