예제 #1
0
파일: Form1.cs 프로젝트: wee2tee/MPA3
        private CreateFileResult CreateFileAndSendMail(string data_path, string docnum, string customer_email)
        {
            try
            {
                DbfDataSet dbf   = new DbfDataSet(data_path);
                var        artrn = dbf.Artrn.Where(a => a.docnum == docnum).FirstOrDefault();

                if (artrn == null)
                {
                    throw new Exception("Error : Document number " + docnum + " not found in data path " + data_path);
                }

                string subject = string.Empty;
                subject += artrn.docdat.Value.ToString("[ddMMyyyy]", CultureInfo.GetCultureInfo("th-TH"));
                subject += "[" + artrn.GetSubjectDocType(dbf) + "]";
                subject += "[" + artrn.docnum + "]";

                //Console.WriteLine(" ==> Start at " + DateTime.Now.ToString());
                var json_result = this.CreateJson(data_path, docnum, data_path + @"\eTaxInvoice\json\" + docnum + ".json");
                if (json_result.Success)
                {
                    var xml_result = this.CreateXml(data_path + @"\eTaxInvoice\json\" + docnum + ".json", data_path + @"\eTaxInvoice\xml\" + docnum + ".xml");
                    if (xml_result.Success)
                    {
                        File.Delete(data_path + @"\eTaxInvoice\json\" + docnum + ".json");

                        var pdfa3_result = this.CreatePdfA3(data_path + @"\eTaxInvoice\pdf\" + docnum + ".pdf", data_path + @"\eTaxInvoice\xml\" + docnum + ".xml", data_path + @"\eTaxInvoice\pdfa3\" + docnum + ".pdf", artrn.GetDocType(dbf));
                        if (pdfa3_result.Success)
                        {
                            File.Delete(data_path + @"\eTaxInvoice\xml\" + docnum + ".xml");

                            Mailing m           = new Mailing(customer_email, subject, "", new string[] { data_path + @"\eTaxInvoice\pdfa3\" + docnum + ".pdf" });
                            var     mail_result = m.Send();
                            if (mail_result.Success)
                            {
                                //Console.WriteLine(" ==> Send mail success");
                                //Console.WriteLine(" ==> Completed at " + DateTime.Now.ToString());
                                m = null;
                                return(new CreateFileResult {
                                    Success = true, Message = mail_result.Message
                                });
                            }
                            else
                            {
                                //Console.WriteLine(" ==> Send mail failed");
                                //Console.WriteLine(" ==> Corupted at " + DateTime.Now.ToString());
                                return(new CreateFileResult {
                                    Success = false, Message = mail_result.Message
                                });
                            }
                        }
                        else
                        {
                            return(pdfa3_result);
                        }
                    }
                    else
                    {
                        return(xml_result);
                    }
                }
                else
                {
                    return(json_result);
                }
            }
            catch (Exception)
            {
                throw;
            }
        }