public void TestSelect_PaymentRequestLicense_From_MockData()
        {
            String zipName = "TestZip6";

            DirectoryInfo zipFolder = CreateDirectory(Path.Combine(_netDrive, _oicPath), zipName, 0);

            //ดึงข้อมูลการเงินจากธนาคารใน Temp ตาม BatchID
            IEnumerable <AG_IAS_PAYMENT_G_T> paymentGTs = GetPaymentGTs();

            foreach (AG_IAS_PAYMENT_G_T paymentGT in paymentGTs)
            {
                //หาข้อมูลที่ Sub Payment Head
                IEnumerable <AG_IAS_SUBPAYMENT_H_T> subPaymentHTs = GetSubPaymentHead(paymentGT);

                foreach (AG_IAS_SUBPAYMENT_H_T SubPaymentHT in subPaymentHTs)
                {
                    IEnumerable <AG_IAS_SUBPAYMENT_D_T> subPaymentDTs = GetSubPaymentDetails(SubPaymentHT);


                    foreach (AG_IAS_SUBPAYMENT_D_T subPaymentDT in subPaymentDTs)
                    {
                        AG_IAS_LICENSE_D licenD = LicenseDs.SingleOrDefault(w => w.UPLOAD_GROUP_NO == subPaymentDT.UPLOAD_GROUP_NO &&
                                                                            w.SEQ_NO == subPaymentDT.SEQ_NO);
                        AG_IAS_LICENSE_H licenH = LicenseHs.Single(w => w.UPLOAD_GROUP_NO == licenD.UPLOAD_GROUP_NO);

                        AG_IAS_LICENSE_TYPE_R licenType = LicenseTypeRs.Single(l => l.LICENSE_TYPE_CODE == subPaymentDT.LICENSE_TYPE_CODE);

                        AG_IAS_ATTACH_FILE_LICENSE attach = AttachLicenses.Single(a => a.ID_CARD_NO == licenD.ID_CARD_NO &&
                                                                                  a.GROUP_LICENSE_ID == licenD.UPLOAD_GROUP_NO &&
                                                                                  a.ATTACH_FILE_PATH.EndsWith("03.jpg"));
                        AddLicenseRequest(zipFolder, SubPaymentHT, subPaymentDT, licenD, licenH, licenType, attach);
                    }
                }
            }

            using (ZipFile zip = new ZipFile())
            {
                zip.AddDirectory(zipFolder.FullName); // recurses subdirectories
                zip.Save(zipFolder.FullName + ".zip");
            }
        }
        public void TestSelect_PaymentRequestLicense_From_DAL()
        {
            IAS.DAL.Interfaces.IIASPersonEntities ctx = DAL.DALFactory.GetPersonContext();
            IList <AG_IAS_LICENSE_H> _licenseHs       = new List <AG_IAS_LICENSE_H>();
            IList <AG_IAS_LICENSE_D> _licenseDs       = new List <AG_IAS_LICENSE_D>();

            _licenseTypeRs  = ctx.AG_IAS_LICENSE_TYPE_R.ToList();
            _petitionTypeRs = ctx.AG_IAS_PETITION_TYPE_R.ToList();

            String        zipName   = "TestZip";
            DirectoryInfo zipFolder = CreateDirectory(_netDrive, zipName, 0);

            //ดึงข้อมูลการเงินจากธนาคารใน Temp ตาม BatchID
            var paymentGTs = ctx.AG_IAS_PAYMENT_G_T.Where(f => f.STATUS == "P" && f.GROUP_REQUEST_NO == "999999561000000040")
                             .ToList();

            foreach (AG_IAS_PAYMENT_G_T paymentGT in paymentGTs)
            {
                //หาข้อมูลที่ Sub Payment Head
                //var subPaymentHTs = ctx.AG_IAS_SUBPAYMENT_H_T
                //                    .Where(w => w.GROUP_REQUEST_NO == paymentGT.GROUP_REQUEST_NO &&
                //                              (w.STATUS != null && w.STATUS == "P"))
                //                    .ToList();
                var subPaymentHTs = ctx.AG_IAS_SUBPAYMENT_H_T
                                    .Where(w => w.GROUP_REQUEST_NO == paymentGT.GROUP_REQUEST_NO &&
                                           (w.STATUS != null && w.STATUS == "P") &&
                                           (
                                               w.PETITION_TYPE_CODE == "11" ||
                                               w.PETITION_TYPE_CODE == "13" ||
                                               w.PETITION_TYPE_CODE == "14" ||
                                               w.PETITION_TYPE_CODE == "15" ||
                                               w.PETITION_TYPE_CODE == "16" ||
                                               w.PETITION_TYPE_CODE == "17" ||
                                               w.PETITION_TYPE_CODE == "18"
                                           )
                                           ).ToList();


                foreach (AG_IAS_SUBPAYMENT_H_T SubPaymentHT in subPaymentHTs)
                {
                    IEnumerable <AG_IAS_SUBPAYMENT_D_T> subPaymentDTs =
                        ctx.AG_IAS_SUBPAYMENT_D_T.Where(w => w.HEAD_REQUEST_NO == SubPaymentHT.HEAD_REQUEST_NO &&
                                                        !String.IsNullOrEmpty(w.RECEIPT_NO));


                    foreach (AG_IAS_SUBPAYMENT_D_T subPaymentDT in subPaymentDTs)
                    {
                        AG_IAS_LICENSE_D licenD = ctx.AG_IAS_LICENSE_D.SingleOrDefault(w => w.UPLOAD_GROUP_NO == subPaymentDT.UPLOAD_GROUP_NO &&
                                                                                       w.SEQ_NO == subPaymentDT.SEQ_NO);
                        AG_IAS_LICENSE_H licenH = ctx.AG_IAS_LICENSE_H.Single(w => w.UPLOAD_GROUP_NO == licenD.UPLOAD_GROUP_NO);

                        AG_IAS_ATTACH_FILE_LICENSE attach = ctx.AG_IAS_ATTACH_FILE_LICENSE.Single(a => a.ID_CARD_NO == licenD.ID_CARD_NO &&
                                                                                                  a.GROUP_LICENSE_ID == licenD.UPLOAD_GROUP_NO &&
                                                                                                  a.ATTACH_FILE_PATH.EndsWith("03.jpg"));
                        AG_IAS_LICENSE_TYPE_R licenType = LicenseTypeRs.Single(l => l.LICENSE_TYPE_CODE == subPaymentDT.LICENSE_TYPE_CODE);


                        String        filePath = String.Format(@"{0}\{1}\{2}", zipFolder.FullName, SubPaymentHT.PETITION_TYPE_CODE, licenType.LICENSE_TYPE_NAME);
                        DirectoryInfo dirInfo  = new DirectoryInfo(Path.Combine(_netDrive, filePath));
                        if (!dirInfo.Exists)
                        {
                            dirInfo.Create();
                        }

                        FileInfo fileInfo = new FileInfo(Path.Combine(dirInfo.FullName, "1.txt"));
                        if (!fileInfo.Exists)
                        {
                            using (System.IO.StreamWriter file = fileInfo.CreateText())
                            {
                                file.WriteLine("ชื่อรูป,เลขที่ใบอนุญาต,เลขบัตรประชาชน,ชื่อ,สกุล,วันที่ออกใบอนุญาต,วันที่หมดอายุ,บริษัท,ประเภทใบอนุญาต,");
                            }
                        }


                        using (System.IO.StreamWriter file = fileInfo.AppendText())
                        {
                            file.WriteLine(String.Format("{0},{1},{2},{3},{4},{5},{6},{7},{8},", subPaymentDT.ID_CARD_NO,
                                                         WordSpacing(subPaymentDT.LICENSE_NO),
                                                         WordSpacing(subPaymentDT.ID_CARD_NO),
                                                         String.Format("{0} {1}", licenD.TITLE_NAME, licenD.NAMES),
                                                         licenD.LASTNAME,
                                                         ((DateTime)licenD.LICENSE_DATE).ToString("dd/MM/yyy", CultureInfo.CreateSpecificCulture("th-TH")),
                                                         ((DateTime)licenD.LICENSE_EXPIRE_DATE).ToString("dd/MM/yyy", CultureInfo.CreateSpecificCulture("th-TH")),
                                                         licenH.COMP_NAME,
                                                         licenType.LICENSE_TYPE_NAME));
                        }
                    }
                }
            }
        }