using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Threading.Tasks;
using JtkMainServer.Managers;
using JtkMainServer.Models;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;

namespace JtkMainServer.Pages.Join {
    public class IndexModel : PageModel {
        public string ErrorMessage { get; set; }

        [BindProperty]
        public Models.Join Join { get; set; }

        public IActionResult OnGet() {
            if (string.IsNullOrWhiteSpace(HttpContext.Session.GetString("LoggedInUserId")) == false) {
                // 이미 로그인 되었을 시, 메인 페이지로
                return RedirectToPage("./Index");
            }
            return Page();
        }

        public IActionResult OnPost() {
            if (string.IsNullOrWhiteSpace(HttpContext.Session.GetString("LoggedInUserId")) == false) {
                // 이미 로그인 되었을 시, 메인 페이지로
                return RedirectToPage("./Index");
            }

            if (ModelState.IsValid == false) {
                // 유효성 검사 불통과 시
                return Page();
            }
            //var user = DbManager.GetUser(Join.Id);
            /*if (user == null || DbManager.ComparePasswords(Join.Password, user.Password) == false) {
                ErrorMessage = "등록되지 않은 아이디이거나, 비밀번호를 잘못 입력하셨습니다.";
                return Page();
            }*/
            var ok = DbManager.AddUser(Join.Id, Join.Password);
            if (ok) {
                return RedirectToPage("./Done");
            } else {
                ErrorMessage = $"아이디가 중복됩니다.";
                return Page();
            }
            
            //HttpContext.Session.SetString("LoggedInUserId", Join.Id);

            /*var requestedPage = HttpContext.Session.GetString("RequestedPage");
            HttpContext.Session.Remove("RequestedPage");
            return RedirectToPage(string.IsNullOrWhiteSpace(requestedPage) ? "./Index" : requestedPage);*/
        }
    }
}
