//public void Post([FromBody] string value) public async Task <PostResponse> Post([FromBody] ObjectToSend objectToSend) { var pr = new PostResponse() { success = false, Id = 0 }; try { await context.ObjectsToSend.AddAsync(objectToSend); await context.SaveChangesAsync(); pr.success = true; pr.Id = objectToSend.Id; } catch { } return(pr); }
protected override void OnNavigatedTo(NavigationEventArgs e) { Event _event = e.Parameter as Event; if (_event.Response == null) { _event.Response = "no"; } ResponseSwitch.OffContent = "Não"; if (_event.Response.Equals("yes") || _event.Yes_rsvp_count < _event.Rsvp_limit) { ResponseSwitch.OnContent = "Sim"; } else if (_event.Yes_rsvp_count == _event.Rsvp_limit) { ResponseSwitch.OnContent = "Lista de espera"; } ResponseSwitch.IsOn = !_event.Response.Equals("no"); QuestionsStack.Visibility = ResponseSwitch.IsOn ? Visibility.Visible : Visibility.Collapsed; ResponseSwitch.Toggled += (s, ev) => { QuestionsStack.Visibility = ResponseSwitch.IsOn ? Visibility.Visible : Visibility.Collapsed; }; for (int i = 0; i < _event.Survey_questions.Count; i++) { TextBlock label = new TextBlock(); label.Text = _event.Survey_questions[i].Question; TextBox entry = new TextBox(); entry.Margin = new Thickness(0, 5, 0, 5); entry.TextChanged += (sender, args) => { string _text = entry.Text; if (_text.Length > 250) { _text = _text.Remove(_text.Length - 1); entry.Text = _text; } }; if (_event.Answers != null) { entry.Text = _event.Answers[i].Answer; } entries.Add(entry); QuestionsStack.Children.Add(label); QuestionsStack.Children.Add(entry); } Send.Click += async(s, ev) => { try { (s as Button).IsEnabled = false; List <Questions> list = new List <Questions>(); for (int i = 0; i < entries.Count; i++) { list.Add(new Questions() { Id = _event.Survey_questions[i].Id, Question = _event.Survey_questions[i].Question, Answer = entries[i].Text }); } ObjectToSend ob = new ObjectToSend() { Response = ResponseSwitch.IsOn ? "yes" : "no", Answers = list }; var uri = new Uri(Other.Other.GetRSVPUrl(_event.Id)); var json = JsonConvert.SerializeObject(ob, Formatting.Indented, new JsonSerializerSettings { ContractResolver = new CamelCasePropertyNamesContractResolver() }); var postData = new List <KeyValuePair <string, string> >(); postData.Add(new KeyValuePair <string, string>("json", json)); postData.Add(new KeyValuePair <string, string>("refresh_token", Other.Other.localSettings.Values["refresh_token"].ToString())); var content = new FormUrlEncodedContent(postData); var client = new HttpClient(); client.MaxResponseContentBufferSize = 256000; HttpResponseMessage response = await client.PostAsync(uri, content); if (response.IsSuccessStatusCode) { string result = await response.Content.ReadAsStringAsync(); string message = ""; switch (result) { case "yes": message = "RSVP realizado com sucesso"; break; case "waitlist": message = "Você foi para a lista de espera"; break; case "no": message = "Você marcou que não irá"; break; } Other.Other.ShowMessage(message); MainPage.openEvent = _event.Id; EventsPage.Instance.GetEvents(); } else { (s as Button).IsEnabled = true; Other.Other.ShowMessage("Houve um erro ao enviar os dados, tente novamente"); } } catch { (s as Button).IsEnabled = true; Other.Other.ShowMessage("Houve um erro ao enviar os dados, tente novamente"); } }; }
public RSVPPage(Event _event) { InitializeComponent(); Title = "RSVP"; if (_event.Response == null) { _event.Response = "no"; } ResponseSwitch.IsToggled = !_event.Response.Equals("no"); switch (_event.Response) { case "yes": State.Text = "Sim"; break; case "waitlist": State.Text = "Lista de espera"; break; default: State.Text = "Não"; break; } QuestionsStack.IsVisible = ResponseSwitch.IsToggled; ResponseSwitch.Toggled += (s, e) => { if (e.Value) { if (_event.Yes_rsvp_count == _event.Rsvp_limit && !_event.Response.Equals("yes")) { State.Text = "Lista de espera"; } else { State.Text = "Sim"; } } else { State.Text = "Não"; } QuestionsStack.IsVisible = e.Value; }; for (int i = 0; i < _event.Survey_questions.Count; i++) { Label label = new Label(); label.Text = _event.Survey_questions[i].Question; Entry entry = new Entry(); entry.TextChanged += (sender, args) => { string _text = entry.Text; if (_text.Length > 250) { _text = _text.Remove(_text.Length - 1); entry.Text = _text; } }; if (_event.Answers != null) { entry.Text = _event.Answers[i].Answer; } entries.Add(entry); QuestionsStack.Children.Add(label); QuestionsStack.Children.Add(entry); } Send.Clicked += async(s, e) => { try { (s as Button).IsEnabled = false; List <Questions> list = new List <Questions>(); for (int i = 0; i < entries.Count; i++) { Questions q = _event.Survey_questions[i]; q.Answer = entries[i].Text; list.Add(q); } ObjectToSend ob = new ObjectToSend() { Response = ResponseSwitch.IsToggled ? "yes" : "no", Answers = list }; var uri = new Uri(Other.Other.GetRSVPUrl(_event.Id)); var json = JsonConvert.SerializeObject(ob, Formatting.Indented, new JsonSerializerSettings { ContractResolver = new CamelCasePropertyNamesContractResolver() }); var postData = new List <KeyValuePair <string, string> >(); postData.Add(new KeyValuePair <string, string>("json", json)); postData.Add(new KeyValuePair <string, string>("refresh_token", Other.Other.GetSetting("refresh_token"))); var content = new FormUrlEncodedContent(postData); var client = new HttpClient(); client.MaxResponseContentBufferSize = 256000; HttpResponseMessage response = await client.PostAsync(uri, content); if (response.IsSuccessStatusCode) { string result = await response.Content.ReadAsStringAsync(); string message = ""; switch (result) { case "yes": message = "RSVP realizado com sucesso"; break; case "waitlist": message = "Você foi para a lista de espera"; break; case "no": message = "Você marcou que não irá"; break; } await DisplayAlert("", message, "OK"); MainPage.openEvent = _event.Id; MainPage.Instance.GetEvents(); } else { (s as Button).IsEnabled = true; Other.Other.ShowMessage("Houve um erro ao enviar os dados, tente novamente", this); } } catch { (s as Button).IsEnabled = true; Other.Other.ShowMessage("Houve um erro ao enviar os dados, tente novamente", this); } }; }