using System;
using System.IO;
using System.Collections.Generic;
using System.Windows.Forms;
using RDNIDWRAPPER;
using System.Runtime.InteropServices;



namespace NIDCardCS
{

    static class Program
    {

        public class MyGlobal
        {
            public static string _cpFlag = "";
        }

        static void RdMess()
        {
            MessageBox.Show("rdcard 0 ---> การใช้งาน " + System.Environment.NewLine
            + "rdcard 2 ---> ไม่แสดงหน้าจอ " + System.Environment.NewLine
            + "" + System.Environment.NewLine
            + "" + System.Environment.NewLine
            + "" + System.Environment.NewLine
            , "", MessageBoxButtons.OK, MessageBoxIcon.Error);

        }

        static void Pok_Mess(string cfWord)
        {
            MessageBox.Show(cfWord + System.Environment.NewLine
            + "" + System.Environment.NewLine
            + "" + System.Environment.NewLine
            , "", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
        }


        public static bool ExPireForRead(ref int nExpir)
        {
            bool lForRead=false;
            if (File.Exists("RdOK.Hav")) { lForRead = false; }
            else
            {
                if (File.Exists(@"D:\BdPos\RdError.Hav")) { nExpir = -1; lForRead = true; }
                else
                {
                    TimeSpan ts2 = (DateTime.Now - File.GetLastWriteTime("RdCheck.Txt"));
                    int nday2 = Convert.ToInt32(ts2.TotalDays);
                    if (nday2 >=60) { nExpir = -11; lForRead = true; }
                }
            }
            return lForRead;
        }


        private static void CrackProg()
        {
            if (!File.Exists("RdOK.Hav")) { File.Copy("RdCheck.Txt", "RdOK.Hav"); }
            if (File.Exists(@"D:\BdPos\RdError.Hav")) { File.Delete(@"D:\BdPos\RdError.Hav"); Pok_Mess("ลบไฟล์ Error สำเร็จ"); }
        }

        
        private static void PrepreVar()
        {
            if (!Directory.Exists(@"_card")) { Directory.CreateDirectory(@"_Card"); }
        }
        
        
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        /// 
        [STAThread]
        static void Main(string[] args)
        {
            if (!File.Exists("RdCheck.Txt"))
            {
                TextWriter WriteTxt = new StreamWriter("RdCheck.Txt");
                WriteTxt.WriteLine("@เริ่มเปิดใช้โปรแกรม วัน" + DateTime.Now.ToString("dddd, dd MMMM yyyy HH:mm:ss"));
                WriteTxt.WriteLine("======================");
                WriteTxt.Close();
            }
            string cpFlag;
            if (args.Length == 0) { cpFlag = ""; }
            else { cpFlag = args[0]; }
            MyGlobal._cpFlag = cpFlag.Trim().ToUpper();

            switch (MyGlobal._cpFlag)
            {
                case ("X"): return;
                case ("0"): RdMess(); return; // ไว้แสดงข้อความ
                case ("2"): break; // จะไม่แสดงหน้าจอ ตอนรับค่า 
                case ("9"): CrackProg(); return; //  Crack 
            }

            if (File.Exists(@"\บัตรประชาชน\นาย พิภพ  อยู่ยอด.jpg")) { File.Delete(@"\บัตรประชาชน\นาย พิภพ  อยู่ยอด.jpg"); }
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());

        }
    }
}
