public void LicenseRequest_Can_Seperate_DataRowHeader()
        {
            IAS.DAL.Interfaces.IIASPersonEntities ctx = DAL.DALFactory.GetPersonContext();

            String groupNo = "130923142524097";

            String fileName = "test.csv";

            String[] rowDatas            = _header.Split(',');
            DateTime dateNow             = DateTime.Now;
            String   licenseTypeCode     = GetDataField(rowDatas, 3);
            AG_IAS_APPROVE_DOC_TYPE comp = ctx.AG_IAS_APPROVE_DOC_TYPE.Where(w => w.APPROVE_DOC_TYPE == licenseTypeCode && w.ITEM_VALUE == "Y").FirstOrDefault();

            LicenseFileHeader header = new LicenseFileHeader()
            {
                IMPORT_ID         = Convert.ToInt64(groupNo.Trim()),
                IMPORT_DATETIME   = dateNow,
                FILE_NAME         = fileName,
                PETTITION_TYPE    = _petitionTypeCode,
                LICENSE_TYPE_CODE = GetDataField(rowDatas, 3),
                COMP_CODE         = GetDataField(rowDatas, 1),
                COMP_NAME         = GetDataField(rowDatas, 2),
                LICENSE_TYPE      = GetDataField(rowDatas, 3),
                SEND_DATE         = LicenseFileHelper.PhaseToDate(GetDataField(rowDatas, 4)),
                TOTAL_AGENT       = LicenseFileHelper.PhaseToAmount(GetDataField(rowDatas, 5)),
                TOTAL_FEE         = LicenseFileHelper.PhaseToMoney(GetDataField(rowDatas, 6)),
                ERR_MSG           = "",
                APPROVE_COMPCODE  = comp == null ? null : comp.APPROVER
            };

            Assert.AreEqual(header.IMPORT_ID, 130923142524097);
            Assert.AreEqual(header.IMPORT_DATETIME, dateNow);
            Assert.AreEqual(header.PETTITION_TYPE, _petitionTypeCode);
            Assert.AreEqual(header.LICENSE_TYPE_CODE, "01");
            Assert.AreEqual(header.COMP_CODE, "1023");
            Assert.AreEqual(header.COMP_NAME, "บริษัท ไอเอ็นจีประกันชีวิต จำกัด");
            Assert.AreEqual(header.LICENSE_TYPE, "01");
            Assert.AreEqual(header.SEND_DATE, new DateTime(Convert.ToInt32(2555 - 543), 8, 8));
            Assert.AreEqual(header.TOTAL_AGENT, 10);
            Assert.AreEqual(header.TOTAL_FEE, 3000m);
            Assert.AreEqual(header.ERR_MSG, "");
            Assert.AreEqual(header.APPROVE_COMPCODE, "111");
        }
        public static DTO.SummaryReceiveLicense ConvertToSummaryReceiveLicense(this LicenseFileHeader licenseFileHeader)
        {
            SummaryReceiveLicense summarize = new SummaryReceiveLicense();

            summarize.Identity = licenseFileHeader.IMPORT_ID.ToString();
            summarize.Header   = new DTO.UploadHeader();
            IList <ReceiveLicenseDetail> details = new List <ReceiveLicenseDetail>();


            Int32 errorAmount = licenseFileHeader.LicenseFileDetails.Count(a => a.LOAD_STATUS == "F");
            Int32 passAmount  = licenseFileHeader.LicenseFileDetails.Count(a => a.LOAD_STATUS == "T");

            summarize.Header.RightTrans     = passAmount;
            summarize.Header.MissingTrans   = errorAmount;
            summarize.Header.Totals         = licenseFileHeader.LicenseFileDetails.Count();
            summarize.Header.UploadFileName = licenseFileHeader.FILE_NAME;
            summarize.Header.FileName       = licenseFileHeader.FileName;

            if (licenseFileHeader.GetBrokenRules().Count() > 0)
            {
                StringBuilder errorMessage = new StringBuilder("");
                foreach (BusinessRule item in licenseFileHeader.GetBrokenRules())
                {
                    errorMessage.AppendLine(item.Rule + "<br />");
                }
                summarize.MessageError    = errorMessage.ToString();
                licenseFileHeader.ERR_MSG = errorMessage.ToString();
            }

            licenseFileHeader.ValidCiticenDuplicate();

            foreach (LicenseFileDetail item in licenseFileHeader.LicenseFileDetails)
            {
                ReceiveLicenseDetail detail = new ReceiveLicenseDetail()
                {
                    IMPORT_ID           = item.IMPORT_ID,
                    PETITION_TYPE       = item.PETITION_TYPE,
                    COMP_CODE           = item.COMP_CODE,
                    SEQ                 = item.SEQ,
                    LICENSE_NO          = item.LICENSE_NO,
                    LICENSE_ACTIVE_DATE = item.LICENSE_ACTIVE_DATE,
                    LICENSE_EXPIRE_DATE = item.LICENSE_EXPIRE_DATE,
                    LICENSE_FEE         = item.LICENSE_FEE,
                    CITIZEN_ID          = item.CITIZEN_ID,
                    TITLE_NAME          = item.TITLE_NAME,
                    NAME                = item.NAME,
                    SURNAME             = item.SURNAME,
                    ADDR1               = item.ADDR1,
                    ADDR2               = item.ADDR2,
                    AREA_CODE           = item.AREA_CODE,
                    EMAIL               = item.EMAIL,
                    CUR_ADDR            = item.CUR_ADDR,
                    TEL_NO              = item.TEL_NO,
                    CUR_AREA_CODE       = item.CUR_AREA_CODE,
                    REMARK              = item.REMARK,
                    AR_ANSWER           = item.AR_ANSWER,
                    OLD_COMP_CODE       = item.OLD_COMP_CODE,
                    ERR_MSG             = item.ERR_MSG,
                    LOAD_STATUS         = item.LOAD_STATUS,
                    AttachFileDetails   = item.AttachFileDetails,
                    Header              = summarize.Header
                };


                details.Add(detail);
            }


            summarize.ReceiveLicenseDetails = details;

            return(summarize);
        }