public CarrinhoViewModel()
        {
            Items    = new ObservableCollection <CarrinhoItem>();
            Carrinho = new Carrinho {
                Items = Items
            };
            selectedTime = new TimeSpan(0, 0, 0);
            API          = new ReservaAPIService();

            UpdateTotal();

            MessagingCenter.Subscribe <CarrinhoPage>(this, "ConfirmarReservaClicked", async(page) =>
            {
                ReservaPostModel reserva = new ReservaPostModel(Items, selectedTime);

                var success = await API.RegistarReserva(reserva);

                // Verifica se a lista de erros está vazia
                if (!success.Erros.Any())
                {
                    page.DisplayReservaSucesso();
                    Items          = new ObservableCollection <CarrinhoItem>();
                    Carrinho.Items = Items;
                }
                else
                {
                    page.DisplayErroRegistarReserva();
                }
            });
        }
        public async Task <ErrorsList> RegistarReserva(ReservaPostModel reserva)
        {
            try
            {
                _client.DefaultRequestHeaders.Authorization =
                    new AuthenticationHeaderValue("Bearer", App.AuthToken.Token);

                var content  = JsonConvert.SerializeObject(reserva);
                var response = await _client.PostAsync(URL_reserva, new StringContent(content, Encoding.UTF8, "application/json"));

                if (response.IsSuccessStatusCode)
                {
                    return(new ErrorsList());
                }
                if (response.StatusCode == System.Net.HttpStatusCode.InternalServerError)
                {
                    var erros = new ErrorsList();
                    erros.Erros.Add(21);      // Adiciona erro 21 Erro do lado do servidor
                    return(erros);
                }
                else
                {
                    var erros = JsonConvert.DeserializeObject <ErrorsList>(response.Content.ReadAsStringAsync().Result);

                    /*
                     * if (!erros.Erros.Any())
                     * {
                     *  // TODO: Alterar o código de erro
                     *  // Adiciona erro 20 Campos de Preenchimento Obrigatorio
                     *  erros.Erros.Add(20);
                     * }*/
                    foreach (int e in erros.Erros)
                    {
                        Console.WriteLine("[ERRO] " + e);
                    }

                    return(erros);
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.StackTrace);
                throw ex;
            }
        }