private void Save_Product(object sender, EventArgs e, Activity currentActivity) { btn_prd_save.Click -= (sndr, argus) => Save_Product(sndr, argus, currentActivity); try { if (!string.IsNullOrWhiteSpace(txt_ProductName.Text.Trim())) { if (gotFile) { CommonModuleResponse obj = new CommonModuleResponse(); img_product_view.BuildDrawingCache(true); Bitmap bmap = img_product_view.GetDrawingCache(true); img_product_view.SetImageBitmap(bmap); obj.fileStream = BitmapHelpers.BitmapToByteArray(Bitmap.CreateBitmap(img_product_view.GetDrawingCache(true))); obj.productdata = new ProductDetailResponse(); obj.productdata.ProductName = txt_ProductName.Text.Trim(); obj.productdata.CategoryID = objSelectedItem[0].ItemCode; obj.productdata.ProductTypeName = objSelectedItem[0].ItemName; ProgressDialog progressDialog = ProgressDialog.Show(this.Activity, "Please wait...", "Saving your product...", true); new Thread(new ThreadStart(delegate { currentActivity.RunOnUiThread(() => this.SaveProduct(progressDialog, currentActivity, obj)); })).Start(); } else { throw new Exception("Please capture or chose product image"); } } else { throw new Exception("Please provide your product name"); } } catch (Exception ex) { currentActivity.RunOnUiThread(() => { Android.App.AlertDialog.Builder alertDiag = new Android.App.AlertDialog.Builder(currentActivity); alertDiag.SetTitle(Resource.String.DialogHeaderError); alertDiag.SetMessage(ex.Message); alertDiag.SetIcon(Resource.Drawable.alert); alertDiag.SetPositiveButton(Resource.String.DialogButtonOk, (senderAlert, args) => { //btn_prd_save.Click += (sndr, argus) => Save_Product(sndr, argus, currentActivity); }); Dialog diag = alertDiag.Create(); diag.Show(); diag.SetCanceledOnTouchOutside(false); }); } }
private void SaveProduct(ProgressDialog dialog, Activity curActivity, CommonModuleResponse obj) { try { string mStringLoginInfo = string.Empty; string mStringSessionToken = string.Empty; try { objdb = new DBaseOperations(); var lstu = objdb.selectTable(); if (lstu != null && lstu.Count > default(int)) { var uobj = lstu.FirstOrDefault(); if (uobj.Password == " ") { throw new Exception("Please login again"); } mStringLoginInfo = uobj.EmailId; mStringSessionToken = uobj.AuthToken; } } catch { } //var x = Newtonsoft.Json.JsonConvert.SerializeObject(obj); var client = new RestClient(Common.UrlBase); var request = new RestRequest("Product/CreateSubCategory", Method.POST); request.AddHeader("Content-Type", "application/json"); request.AddHeader("TokenKey", mStringSessionToken); //request.AddJsonBody(obj); request.AddParameter(new Parameter { Name = "application/json", Type = ParameterType.RequestBody, Value = Newtonsoft.Json.JsonConvert.SerializeObject(obj, new NoColonIsoDateTimeConverter()) }); IRestResponse response = client.Execute(request); var content = response.Content; var responseObj = Newtonsoft.Json.JsonConvert.DeserializeObject <CommonModuleResponse>(content); if (responseObj != null && responseObj.productdata != null && !string.IsNullOrEmpty(responseObj.productdata.ProductId)) { curActivity.RunOnUiThread(() => { Android.App.AlertDialog.Builder alertDiag = new Android.App.AlertDialog.Builder(curActivity); alertDiag.SetTitle(Resource.String.DialogHeaderGeneric); alertDiag.SetMessage(string.Format("Your product '{0}' has been saved successfully", obj.productdata.ProductName)); alertDiag.SetIcon(Resource.Drawable.success); alertDiag.SetPositiveButton(Resource.String.DialogButtonOk, (senderAlert, args) => { var siteparam = new List <ItemPayloadModelWithBase64>(); siteparam.Add(objSelectedItem.FirstOrDefault()); Bundle utilBundle = new Bundle(); utilBundle.PutString("siteparam", Newtonsoft.Json.JsonConvert.SerializeObject(siteparam)); AddActivityFragment objFragment = new AddActivityFragment(); objFragment.Arguments = utilBundle; Android.Support.V4.App.FragmentTransaction tx = FragmentManager.BeginTransaction(); tx.Replace(Resource.Id.m_main, objFragment, Constants.dashboard); tx.Commit(); }); Dialog diag = alertDiag.Create(); diag.Show(); diag.SetCanceledOnTouchOutside(false); }); } else { if (responseObj != null && !string.IsNullOrEmpty(responseObj.Error)) { throw new Exception(responseObj.Error); } else { throw new Exception("Unable to save product right now. Please try again later"); } } } catch (Exception ex) { curActivity.RunOnUiThread(() => { Android.App.AlertDialog.Builder alertDiag = new Android.App.AlertDialog.Builder(curActivity); alertDiag.SetTitle(Resource.String.DialogHeaderError); alertDiag.SetMessage(ex.Message); alertDiag.SetIcon(Resource.Drawable.alert); alertDiag.SetPositiveButton(Resource.String.DialogButtonOk, (senderAlert, args) => { }); Dialog diag = alertDiag.Create(); diag.Show(); diag.SetCanceledOnTouchOutside(false); }); } finally { if (dialog != null && dialog.IsShowing) { dialog.Hide(); dialog.Dismiss(); } } }