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()); }