using Blazor.Models;
using Blazor.Services;
using ChoETL;
using Microsoft.AspNetCore.Components;

namespace Blazor.Pages.Players
{
    public partial class EditPlayer
    {

        [Parameter]
        public int Id { get; set; }

        private PlayerModel playerModel = new();

        [Inject]
        public IDataService DataService { get; set; }

        [Inject]
        public NavigationManager NavigationManager { get; set; }

        [Inject]
        public IWebHostEnvironment WebHostEnvironment { get; set; }

        protected override async Task OnInitializedAsync()
        {
            var player = await DataService.GetPlayerById(Id);

            // Set the model with the admin
            playerModel = new PlayerModel
            {
                Id = player.Id,
                Nickname = player.Nickname
            };
        }

        private async void HandleValidSubmit()
        {
            await DataService.Update(Id, playerModel);
            var formData = new List<KeyValuePair<string, string>>();
            formData.Add(new KeyValuePair<string, string>("nickname", playerModel.Nickname));
            formData.Add(new KeyValuePair<string, string>("password", playerModel.HashedPassword));

            var formContent = new FormUrlEncodedContent(formData);

            string apiUri = "https://trusting-panini.87-106-126-109.plesk.page/api/update/"+playerModel.Id;

            using (var httpClient = new HttpClient())
            {
                var response = await httpClient.PostAsync(apiUri, formContent);

                if (response.IsSuccessStatusCode)
                {
                    var responseBody = await response.Content.ReadAsStringAsync();
                }
                else
                {
                    var errorResponse = await response.Content.ReadAsStringAsync();
                }
            }
            NavigationManager.NavigateTo("players");
        }
    }
}
