//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);
        }
Пример #2
0
        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");
                }
            };
        }
Пример #3
0
        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);
                }
            };
        }