public async Task <string> PostQuestion(mQuestion question)//server error { try { var Questioncreds = Newtonsoft.Json.JsonConvert.SerializeObject(question); HttpContent ItemContent = new StringContent(Questioncreds, Encoding.UTF8, "application/json"); using (var client = new HttpClient()) { HttpResponseMessage response = await client.PostAsync(Keys.Url_Main + "item-question/post", ItemContent); using (HttpContent spawn = response.Content) { string content = await spawn.ReadAsStringAsync(); mServerCallback callback = Newtonsoft.Json.JsonConvert.DeserializeObject <mServerCallback>(content); if (callback.Status == "true") { return("true"); } DialogService.ShowError(callback.Mess); return(null); } } } catch (Exception ex) { Debug.WriteLine(Keys.TAG + ex); return(Strings.HttpFailed); } }
public async Task NotifyAction(mNotify item) { if (item.Why == Keys.NotifyWhys[1])// new-question { mQuestion question = await QuestionService.Instance.FetchQuestion(item.Objecter); if (question == null || question.Answer != Strings.No_Answer || QuestionAnswered) { return; } var result = await DialogService.DisplayAlert(Strings.Answer, Strings.Close, Strings.Answer_Question, question.Question); if (!result) { return; } var answer = await DialogService.ShowInputPrompt(Strings.Answer, Strings.Close, Strings.Answer_Question, "Q: " + question.Question, "", Acr.UserDialogs.InputType.Default); if (string.IsNullOrEmpty(answer)) { return; } AnswerQuestion(answer, question); } }
public async void UpdateAnswer(mQuestion question) { if (IsBusy || question.Answer_By != AccountService.Instance.Current_Account.Email) { return; } var result = await DialogService.ShowInputPrompt("Update", "Cancel", "Update Answer", "", question.Answer, InputType.Default); if (string.IsNullOrEmpty(result)) { return; } DialogService.ShowLoading(); try { var updatedQuestion = new mQuestion() { Id = question.Id, Answer = result }; var callback = await QuestionService.Instance.EditAnswer(updatedQuestion); DialogService.HideLoading(); if (callback == null) { return; } if (callback == "true") { DialogService.ShowToast(Strings.QuestionUpdated); for (var i = 0; i < QuestionlistRev.Count; i++) { if (QuestionlistRev[i] == question) { Questionlist[i].Question = result;//not working } } } } catch (Exception ex) { Debug.WriteLine(Keys.TAG + ex); DialogService.ShowError(Strings.SomethingWrong); Crashes.TrackError(ex); } }
public async void AnswerQuestion(mQuestion question) { if (IsBusy || Owner != AccountService.Instance.Current_Account.Email) { return; } var result = await DialogService.ShowInputPrompt("Answer", "Cancel", "Answer Question", question.Question, "", InputType.Default); if (string.IsNullOrEmpty(result)) { return; } DialogService.ShowLoading(); try { mQuestion newAnswer = new mQuestion() { Answer = result, Id = question.Id, Answer_By = AccountService.Instance.Current_Account.Email, ProductId = question.ProductId }; var callback = await QuestionService.Instance.AnswerQuestion(newAnswer); DialogService.HideLoading(); if (result == null) { return; } if (callback == "true") { DialogService.ShowToast(Strings.QuestionAnswered); for (var i = 0; i < Questionlist.Count; i++) { if (Questionlist[i] == question) { Questionlist[i].Answer = result; } } } } catch (Exception ex) { Debug.WriteLine(Keys.TAG + ex); Crashes.TrackError(ex); } }
public async void AskQuestion() { if (AccountService.Instance.Current_Account == null) { AccountService.Instance.autho(null, "Dismiss"); return; } if (IsBusy || Owner == AccountService.Instance.Current_Account.Email) { return; } var result = await DialogService.ShowInputPrompt("Ask", "Cancel", "Ask Question", "", "", InputType.Default); if (string.IsNullOrEmpty(result)) { return; } DialogService.ShowLoading(); try { mQuestion newQuestion = new mQuestion() { Question = result, ProductId = Itemid, Asked_By = AccountService.Instance.Current_Account.Email, IsItem = "True", Displayname = AccountService.Instance.Current_Account.Displayname }; var callback = await QuestionService.Instance.PostQuestion(newQuestion); DialogService.HideLoading(); if (result == null) { return; } if (callback == "true") { DialogService.ShowToast("Question Asked"); } } catch (Exception ex) { Debug.WriteLine(Keys.TAG + ex); Crashes.TrackError(ex); } }
public async Task <mQuestion> FetchQuestion(string id) { try { var httpClient = new HttpClient(); var response = await httpClient.GetAsync(Keys.Url_Main + "item-question/question/" + id); response.EnsureSuccessStatusCode(); string content = await response.Content.ReadAsStringAsync(); mServerCallback callback = Newtonsoft.Json.JsonConvert.DeserializeObject <mServerCallback>(content); if (callback.Status == "true") { mQuestion newitems = new mQuestion(); newitems = Newtonsoft.Json.JsonConvert.DeserializeObject <mQuestion>(callback.Data.ToString()); if (newitems == null) { return(null); } if (newitems.Answer == null) { newitems.Answer = "*No Answer Yet*"; } return(newitems); } else { DialogService.ShowError(callback.Mess); return(null); } } catch (Exception ex) { Debug.WriteLine(Keys.TAG + ex); DialogService.ShowErrorToast(Strings.HttpFailed); return(null); } }
private async void AnswerQuestion(string answer, mQuestion question) { DialogService.ShowLoading(); mQuestion newAnswer = new mQuestion() { Answer = answer, Id = question.Id, Answer_By = AccountService.Instance.Current_Account.Email, ProductId = question.ProductId }; var callback = await QuestionService.Instance.AnswerQuestion(newAnswer); DialogService.HideLoading(); if (callback == "true") { DialogService.ShowToast(Strings.Answer_Question); QuestionAnswered = true; } }
private async void ListView_ItemSelected(object sender, SelectedItemChangedEventArgs e) { var item = e.SelectedItem as mNotify; if (item != null) { if (item.Why == Keys.NotifyWhys[9])//rate { DialogService.ShowLoading("Please wait"); mOrder order = await OrderService.Instance.FetchOrder(item.Objecter); DialogService.HideLoading(); if (order == null) { return; } await Navigation.PushAsync(new RateList(order)); } else if (item.Type == Keys.NotifyTypes[2]) //order { DialogService.ShowLoading("Please wait"); mOrder order = await OrderService.Instance.FetchOrder(item.Objecter); DialogService.HideLoading(); if (order == null) { return; } await Navigation.PushAsync(new OrderDetail(order)); } else if (item.Why == Keys.NotifyWhys[2])//answer-question { mQuestion question2 = await QuestionService.Instance.FetchQuestion(item.Objecter); var response = await DialogService.DisplayAlert("View item", "Dismiss", "Q:" + question2.Question, "A:" + question2.Answer); listView.SelectedItem = null; if (!response) { return; } DialogService.ShowLoading("Relocating"); if (question2.IsItem == "True") { var Titem = await ItemService.Instance.FetchItem(question2.ProductId); DialogService.HideLoading(); await Navigation.PushAsync(new ItemView(Titem)); } else { var Tproduct = await ProductService.Instance.FetchProduct(question2.ProductId); DialogService.HideLoading(); await Navigation.PushAsync(new ProductView(Tproduct)); } } else { viewModel.NotifyAction(item); } } listView.SelectedItem = null; }