public void _btnAdd_Click(object sender, EventArgs e)
        {
            var itemViewModel = new ItemViewModel();

            var item = new Item();
            item.Name = _txtName.Text;

            item.RetailPrice = double.Parse(_txtRetail.Text);
            item.AskingPrice = double.Parse(_txtPrice.Text);

            item.Description = _txtDescription.Text;
            item.CreatedDate = DateTime.Now;
            item.UserId = SettingsPresenter.Current.UserId;
            itemViewModel.Item = item;
            itemViewModel.AddPhoto(_bitmapData);
            string name = ((FileStream)_mediaFile).Name;
            itemViewModel.Item.ImageName = name.Substring(name.LastIndexOf("/") + 1);
            RBAListPresenter.Current.AddItemAsync(itemViewModel, SaveComplete);
        }
        public void AddItemAsync(ItemViewModel item, Action success)
        {
            var itemImage = item.ItemImage;
            var tItem = item.Item;

            //if (itemImage != null && !string.IsNullOrEmpty(itemImage.ImageBase64))
            //{
            //    tItem.ImageGuid = itemImage.ImageGuid;

            //    var entryImageTable = MobileService.GetTable<ItemImage>();

            //    entryImageTable.InsertAsync(itemImage).ContinueWith(t2 =>
            //    {
            //        var exception = t2.Exception;
            //        if (exception != null)
            //        {
            //            Debug.WriteLine("Error Adding Image: " + exception.InnerException.StackTrace);
            //        }
            //    });
            //}
            //else
            //{
            //    tItem.ImageGuid = string.Empty;
            //}

            //Upload image with HttpClient to the blob service using the generated item.SAS

            var client = new WebClient();

            var continuation = new Action<Task>(t => {
                //Get a stream of the media just captured
                try
                {
                    var request = (HttpWebRequest)WebRequest.Create(new Uri(tItem.SAS));
                    var fileStream = System.Convert.FromBase64String(itemImage.ImageBase64);
                    request.Method = "PUT";
                    //request.Headers.Add("Content-Type", "image/jpeg");
                    request.Headers.Add("x-ms-blob-type", "BlockBlob");
                    Stream dataStream = request.GetRequestStream();
                    dataStream.Write(fileStream, 0, fileStream.Length);
                    dataStream.Close();

                   // client.UploadDataAsync(new Uri(tItem.SAS), "PUT", fileStream);
                    WebResponse response = request.GetResponse();

                    Console.WriteLine(((HttpWebResponse)response).StatusDescription);
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.InnerException);
                }

                success();
            });

            if (tItem.Id <= 0)
            {
                MobileService.GetTable<Item>().InsertAsync(tItem).ContinueWith(continuation, TaskScheduler.FromCurrentSynchronizationContext());
            }
            else
            {
                MobileService.GetTable<Item>().UpdateAsync(tItem).ContinueWith(continuation, TaskScheduler.FromCurrentSynchronizationContext());
            }
        }
        public void GetItemsAsync(Action<List<ItemViewModel>> successAction)
        {
            var itemViewModelList = new List<ItemViewModel>();
            MobileService.GetTable<Item>().Where(e => !e.Sold).ToListAsync().ContinueWith(itemListTask =>
            {
                //var ex = itemListTask.Exception;
                Console.WriteLine("Starting Get Item Continuation");
                if (itemListTask.Status != TaskStatus.RanToCompletion)
                {
                    return;
                }

                var itemList = itemListTask.Result;
                if (itemList == null)
                {
                    return;
                }

                Console.WriteLine("itemList Count: " + itemList.Count);
                var imageTaskArray = new Task[itemList.Count];
                for (var i = 0; i < itemList.Count; i++)
                {
                    var currentItem = itemList[i];
                    var itemViewModel = new ItemViewModel();
                    itemViewModel.Item = currentItem;

                    itemViewModelList.Add(itemViewModel);
                }

                successAction(itemViewModelList);
                Console.WriteLine("Ending Get Item Continuation");

            }, TaskScheduler.FromCurrentSynchronizationContext());
        }