using MgTestAdmin.Model;
using SqliteDotNet;
using System;
using System.Windows.Forms;

namespace MgTestAdmin
{
    public partial class TestCaseControl : UserControl
    {
        public TestCaseControl()
        {
            InitializeComponent();
        }

        private TestCase _test;
        private SqliteDb _db;

        public TestCaseControl Attach(TestCase test, SqliteDb db)
        {
            _test = test;
            _db = db;

            txtName.Text = _test.TestName;
            txtDescription.Text = _test.Description;
            txtPrerequisite.Text = _test.Prerequsite;
            numSequence.Value = _test.ExecuteSequence;
            switch (_test.TestType)
            {
                case "Api":
                    rdApi.Checked = true;
                    break;
                case "Http":
                    rdHttp.Checked = true;
                    break;
            }

            parameterSetEditor.Attach(_test.ParamSets, _db);

            return this;
        }

        private void btnSave_Click(object sender, EventArgs e)
        {
            
        }

        private void txtName_TextChanged(object sender, EventArgs e)
        {
            _test.TestName = txtPrerequisite.Name;
        }

        private void txtPrerequisite_TextChanged(object sender, EventArgs e)
        {
            _test.Prerequsite = txtPrerequisite.Text;
        }

        private void txtDescription_TextChanged(object sender, EventArgs e)
        {
            _test.Description = txtDescription.Text;
        }

        private void numSequence_ValueChanged(object sender, EventArgs e)
        {
            _test.ExecuteSequence = Convert.ToInt32(numSequence.Value);
        }

        private void rdHttp_CheckedChanged(object sender, EventArgs e)
        {
            _test.TestType = "Http";
        }

        private void rdApi_CheckedChanged(object sender, EventArgs e)
        {
            _test.TestType = "Api";
        }
    }
}