Getting Started with Windows Azure Mobile Services: Listing 1

The Insert method.

private const string ApplicationUrl = "https://mobilecorner.azure-mobile.net/";
private const string ApplicationKey = "QEoycHPhsULrrqnrHBVKydvlPugspY77";
private const string TableName = "article";
      
public async Task<Article> Insert(Article article)
{
    try
    {
        var insertUrl = ApplicationUrl + "tables/" + TableName;
        var insertRequest = WebRequest.Create(insertUrl);
        insertRequest.Method = "POST";
        PrepareMobileServicesHttpRequest(insertRequest);
        var serializer =
            JsonSerializer.Create(new JsonSerializerSettings {
                                NullValueHandling = NullValueHandling.Ignore});
                
        var reqtask = Task.Factory.FromAsync<Stream>(
                                insertRequest.BeginGetRequestStream, 
                                insertRequest.EndGetRequestStream, null);
        using (var req = await reqtask)
        using (var twriter = new StreamWriter(req))
        using (var writer = new JsonTextWriter(twriter))
        {
            serializer.Serialize(writer,article);
        }


        var task = Task.Factory.FromAsync<WebResponse>(
                             insertRequest.BeginGetResponse, 
                             insertRequest.EndGetResponse, null);
        using (var resp = await task)
        using (var stream = resp.GetResponseStream())
        using(var treader = new StreamReader(stream))
        using(var reader = new JsonTextReader(treader))
        {
            return serializer.Deserialize<Article>(reader);
        }
    }
    catch (Exception ex)
    {
        Debug.WriteLine(ex.Message);
        return null;
    }

}
private void PrepareMobileServicesHttpRequest(WebRequest request)
{
    request.Headers["X-ZUMO-INSTALLATION-ID"] = Guid.NewGuid().ToString();
    request.Headers["X-ZUMO-APPLICATION"] = ApplicationKey;
    if (request.Method != "GET")
    {
        request.ContentType = "application/json";
    }
}

About the Author

Nick Randolph runs Built to Roam, a consulting company that specializes in training, mentoring and assisting other companies build mobile applications. With a heritage in rich client applications for both the desktop and a variety of mobile platforms, Nick currently presents, writes and educates on the Windows Phone platform.

comments powered by Disqus

Featured

.NET Insight

Sign up for our newsletter.

Terms and Privacy Policy consent

I agree to this site's Privacy Policy.

Upcoming Events