Пример #1
0
        public static string GetSubjectDocType(this ArtrnDbf artrn, DbfDataSet dataset)
        {
            var isrun = dataset.Isrun.Where(i => i.prefix == artrn.docnum.Substring(0, 2)).FirstOrDefault();

            if (isrun != null)
            {
                switch (isrun.doctyp)
                {
                case "IV":
                    return(DoctypSubject.INV.ToString());

                case "HS":
                    return(DoctypSubject.INV.ToString());

                case "CN":
                    return(DoctypSubject.CRN.ToString());

                case "DR":
                    return(DoctypSubject.DBN.ToString());

                default:
                    return(string.Empty);
                }
            }
            else
            {
                return(string.Empty);
            }
        }
Пример #2
0
        public static string GetDocType(this ArtrnDbf artrn, DbfDataSet dataset)
        {
            var isrun = dataset.Isrun.Where(i => i.prefix == artrn.docnum.Substring(0, 2)).FirstOrDefault();

            if (isrun != null)
            {
                switch (isrun.doctyp)
                {
                case "IV":
                    return(Doctyp.Tax_Invoice.ToString());

                case "HS":
                    return(Doctyp.Tax_Invoice.ToString());

                case "CN":
                    return(Doctyp.Credit_Note.ToString());

                case "DR":
                    return(Doctyp.Debit_Note.ToString());

                default:
                    return(string.Empty);
                }
            }
            else
            {
                return(string.Empty);
            }
        }
Пример #3
0
        public static StdDocumentName GetDocName(this ArtrnDbf artrn, DbfDataSet dataset)
        {
            //try
            //{
            IsrunDbf isrun = dataset.Isrun.Where(i => i.prefix == artrn.docnum.Substring(0, 2)).FirstOrDefault();
            //var x = dataset.Isrun.OrderBy(d => d.doctyp).Select(d => d.doctyp).ToArray<string>();
            StdDocumentName docName = null;

            if (isrun != null)
            {
                switch (isrun.doctyp)
                {
                case "IV":
                    if (artrn.srv_vattyp == ((int)VAT_TYPE.ACQUISITION).ToString() && artrn.vatamt > 0)
                    {
                        docName = new StdDocumentName(StdDocumentName.TYPE._T02);
                    }
                    else
                    {
                        docName = new StdDocumentName(StdDocumentName.TYPE._380);
                    }
                    break;

                case "HS":
                    docName = new StdDocumentName(StdDocumentName.TYPE._T03);
                    break;

                case "CN":
                    docName = new StdDocumentName(StdDocumentName.TYPE._81);
                    break;

                case "DR":
                    docName = new StdDocumentName(StdDocumentName.TYPE._80);
                    break;

                default:
                    docName = new StdDocumentName(StdDocumentName.TYPE._388);
                    break;
                }
            }

            return(docName);
            //}
            //catch (Exception ex)
            //{
            //    return null;
            //}
        }
Пример #4
0
        static void Main(string[] args)
        {
            /** TEST **/
            //try
            //{
            //    JsonModel J = new JsonModel(@"d:\express\expressi\test", "SR0000001");
            //    Console.WriteLine(J.ToString());
            //}
            //catch (Exception EX)
            //{
            //    throw;
            //}


            //Create City.json file
            //string[] lines = File.ReadAllLines(@"Res/TAMBON.csv", Encoding.UTF8);
            //List<CitySubDivision> city_list = new List<CitySubDivision>();
            //for (int i = 1; i < lines.Count(); i++)
            //{
            //    string str = lines[i];
            //    string[] s = str.Split(',');
            //    string tambon_id = s[1].Trim();
            //    string tambon_name = s[2].Replace("ต.", "").Replace("แขวง", "").Trim();
            //    string tambon_name_en = s[3].Trim();
            //    string amphur_id = s[4].Trim();
            //    string amphur_name = s[5].Replace("อ.", "").Replace("เขต", "").Trim();
            //    string amphur_name_en = s[6].Trim();
            //    string ch_id = s[7].Trim();
            //    string ch_name = s[8].Replace("จ.", "").Trim();
            //    string ch_name_en = s[9].Trim();
            //    string latitude = s[10].Trim();
            //    string longitude = s[11].Trim();
            //    CitySubDivision c = new CitySubDivision
            //    {
            //        provinceId = ch_id,
            //        provinceName = ch_name,
            //        provinceNameEng = ch_name_en,
            //        CityId = amphur_id,
            //        CityName = amphur_name,
            //        CityNameEng = amphur_name_en,
            //        SubDivisionId = tambon_id,
            //        SubDivisionName = tambon_name,
            //        SubDivisionNameEng = tambon_name_en,
            //        Latitude = Convert.ToDecimal(latitude),
            //        Longitude = Convert.ToDecimal(longitude)
            //    };
            //    city_list.Add(c);
            //}
            //city_list = city_list.OrderBy(c => c.provinceId).ThenBy(c => c.CityId).ThenBy(c => c.SubDivisionId).ToList();

            //File.WriteAllText(@"Res\Cities.json", JsonConvert.SerializeObject(city_list, Formatting.Indented), new UTF8Encoding(false));
            //Console.WriteLine("completed.");


            /* args.Length = 3 for XML/EXTRACT_TO_XML, 4 for JSON, 8 for PDF */
            if (!(args != null && (args.Length == 3 || args.Length == 4 || args.Length == 8)))
            {
                Console.WriteLine("Error : Arguments not specified completely!");
                return;
            }
            else
            {
                if (!(args[0].ToUpper().Trim() == PROCESS_TYPE.JSON.ToString() || args[0].ToUpper().Trim() == PROCESS_TYPE.XML.ToString() || args[0].ToUpper().Trim() == PROCESS_TYPE.PDF.ToString() || args[0].ToUpper().Trim() == PROCESS_TYPE.EXTRACT.ToString()))
                {
                    Console.WriteLine("Error : Process type is incorrect!");
                    return;
                }

                try
                {
                    // Create JSON file
                    if (args[0].ToUpper().Trim() == PROCESS_TYPE.JSON.ToString())
                    {
                        if (args.Length < 4)
                        {
                            Console.WriteLine("Error : Arguments not specified completely!");
                            return;
                        }

                        string     data_path = args[1];
                        string     docnum    = args[2];
                        string     dest_path = args[3];
                        DbfDataSet dbf       = new DbfDataSet(data_path);
                        var        artrn     = dbf.Artrn.Where(a => a.docnum == docnum).FirstOrDefault();
                        if (artrn != null)
                        {
                            JsonModel json   = new JsonModel(data_path, docnum);
                            var       result = json.WriteToFile(/*@"json\" + docnum + ".json"*/ dest_path);
                            if (result.createSuccess)
                            {
                                Console.WriteLine("Success");
                            }
                            else
                            {
                                Console.WriteLine("Error : " + result.message);
                            }
                        }
                        else
                        {
                            Console.WriteLine("Error : document # " + docnum + " not found");
                        }

                        return;
                    }

                    // Create XML file
                    if (args[0].ToUpper().Trim() == PROCESS_TYPE.XML.ToString())
                    {
                        if (args.Length < 3)
                        {
                            Console.WriteLine("Error : Arguments not specified completely!");
                            return;
                        }

                        string json_path = args[1];
                        string dest_path = args[2];

                        XmlDoc xml    = new XmlDoc(json_path, dest_path);
                        var    result = xml.CreateXml();

                        if (result.createSuccess)
                        {
                            Console.WriteLine("Success");
                        }
                        else
                        {
                            Console.WriteLine("Error : " + result.message);
                        }
                        return;
                    }

                    // Create PDF file
                    if (args[0].ToUpper().Trim() == PROCESS_TYPE.PDF.ToString())
                    {
                        if (args.Length < 8)
                        {
                            Console.WriteLine("Error : Arguments not specified completely!");
                            return;
                        }

                        string pdf_original_file_path    = args[1];
                        string xml_embeded_file_path     = args[2]; // full path of args[6]
                        string color_profile_file_path   = args[3];
                        string destination_pdf_file_path = args[4];
                        string document_type             = args[5];
                        string document_file_name        = args[6]; // only file name of args[2]
                        string document_version          = args[7];

                        PdfDoc pdf    = new PdfDoc(pdf_original_file_path, xml_embeded_file_path, color_profile_file_path, destination_pdf_file_path, document_type, document_file_name, document_version);
                        var    result = pdf.CreatePdf();

                        if (result.createSuccess)
                        {
                            Console.WriteLine("Success");
                        }
                        else
                        {
                            Console.WriteLine("Error : " + result.message);
                        }
                        return;
                    }

                    // Extract to XML file
                    if (args[0].ToUpper().Trim() == PROCESS_TYPE.EXTRACT.ToString())
                    {
                        if (args.Length < 3)
                        {
                            Console.WriteLine("Error : Arguments not specified completely!");
                            return;
                        }

                        string pdfa3_file_path      = args[1];
                        string destination_xml_path = args[2];
                        //string docnum = args[3];

                        string command   = "java";
                        string arguments = "-jar " + AppDomain.CurrentDomain.BaseDirectory + "Extract.jar " + pdfa3_file_path + " " + destination_xml_path;

                        Process process = new Process();
                        process.StartInfo.UseShellExecute        = false;
                        process.StartInfo.RedirectStandardOutput = true;
                        process.StartInfo.FileName  = command;
                        process.StartInfo.Arguments = arguments;
                        process.Start();

                        string output = process.StandardOutput.ReadToEnd();
                        process.WaitForExit();

                        if (output.ToLower().Contains("success"))
                        {
                            Console.WriteLine("Success");
                        }
                        else
                        {
                            Console.WriteLine("Error : " + output);
                        }
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine("Error : " + ex.Message);
                }
            }
        }
Пример #5
0
        public JsonModel(string data_path, string docnum)
        {
            using (StreamReader rdr = File.OpenText(@"Res\Countries.json"))
            {
                countries = (List <Country>) new JsonSerializer().Deserialize(rdr, typeof(List <Country>));
            }
            using (StreamReader rdr = File.OpenText(@"Res\Cities.json"))
            {
                cities = (List <CitySubDivision>) new JsonSerializer().Deserialize(rdr, typeof(List <CitySubDivision>));
                //List<CitySubDivision> cities_json = (List<CitySubDivision>)new JsonSerializer().Deserialize(rdr, typeof(List<CitySubDivision>));
                //province = new List<Province>();
                //foreach (var p in cities_json.GroupBy(c => c.provinceId))
                //{
                //    province.Add(new Province
                //    {
                //        id = p.First().provinceId,
                //        name = p.First().provinceName,
                //        cities = cities_json.Where(c => c.provinceId == p.First().provinceId).GroupBy(c => c.CityId).Select(g => new City
                //        {
                //            id = g.First().CityId,
                //            name = g.First().CityName,
                //            subDivisions = cities_json.Where(c => c.CityId == g.First().CityId).Select(sd => new SubDivision { id = sd.SubDivisionId, name = sd.SubDivisionName, latitude = sd.Latitude, longitude = sd.Longitude }).ToList()
                //        }).ToList()
                //    });
                //}
            }

            DbfDataSet dataset = new DbfDataSet(data_path);

            IsinfoDbf       isinfo     = dataset.Isinfo;
            ArtrnDbf        artrn      = dataset.Artrn.Where(a => a.docnum == docnum).FirstOrDefault();
            StdDocumentName docName    = artrn.GetDocName(dataset);
            ArmasDbf        armas      = dataset.Armas.Where(a => a.cuscod == artrn.cuscod).FirstOrDefault();
            CitySubDivision sellerCity = this.cities.Where(c => (isinfo.addr01 + " " + isinfo.addr02).Contains(c.provinceName) &&
                                                           (isinfo.addr01 + " " + isinfo.addr02).Contains(c.CityName) &&
                                                           (isinfo.addr01 + " " + isinfo.addr02).Contains(c.SubDivisionName)).FirstOrDefault();

            CitySubDivision buyerCity = this.cities.Where(c => (armas.addr01 + " " + armas.addr02 + " " + armas.addr03).Contains(c.provinceName) &&
                                                          (armas.addr01 + " " + armas.addr02 + " " + armas.addr03).Contains(c.CityName) &&
                                                          (armas.addr01 + " " + armas.addr02 + " " + armas.addr03).Contains(c.SubDivisionName)).FirstOrDefault();

            ArtrnDbf refDoc = null;

            if (docName.type == StdDocumentName.TYPE._80 || docName.type == StdDocumentName.TYPE._81)
            {
                refDoc = dataset.Artrn.Where(a => a.docnum == artrn.sonum).FirstOrDefault();
            }
            else
            {
                refDoc = dataset.Artrn.Where(a => a.docnum == artrn.youref).FirstOrDefault();
            }

            StdDocumentName refDocName = refDoc != null?refDoc.GetDocName(dataset) : null;

            List <StcrdDbf> stcrd = dataset.Stcrd.Where(s => s.docnum == docnum).ToList();
            List <IstabDbf> qucod = dataset.Istab.Where(i => i.tabtyp == "20" && stcrd.Select(s => s.tqucod).ToList <string>().Contains(i.typcod)).ToList();



            // Create DocumentDetail for export to JSON
            this.DocumentDetail = new DocumentDetail
            {
                ID = artrn.docnum,
                CreationDateTime    = DateTime.Now.ToString("yyyy-MM-ddTHH:mm:ss.fff", CultureInfo.GetCultureInfo("en-US")),
                IssueDateTime       = artrn.docdat.Value.ToString("yyyy-MM-ddTHH:mm:ss.fff", CultureInfo.GetCultureInfo("en-US")),
                SpecifiedCIDocument = "ETDA",
                Name     = docName != null ? docName.Name : string.Empty,
                TypeCode = docName != null ? docName.typeCode : string.Empty,
                Purpose  = docName.type == StdDocumentName.TYPE._80 || docName.type == StdDocumentName.TYPE._81 ? artrn.youref : string.Empty,
                Note     = new Note
                {
                    Subject = docName.type == StdDocumentName.TYPE._80 || docName.type == StdDocumentName.TYPE._81 ? string.Empty : "หมายเหตุ",
                    Content = docName.type == StdDocumentName.TYPE._80 || docName.type == StdDocumentName.TYPE._81 ? string.Empty : artrn.youref
                }
            };

            this.SellerTradeParty = new SellerTradeParty
            {
                PostalCITradeAddress = new PostalTradeAddress
                {
                    LineOne              = isinfo.addr01,
                    LineTwo              = isinfo.addr02,
                    CountryID            = countries.Where(c => c.Name.ToLower() == "thailand").First().Code,
                    PostcodeCode         = isinfo.GetZipcod(),
                    CountrySubDivisionID = string.Empty,
                    CityID            = sellerCity != null ? sellerCity.CityId : string.Empty,        //string.Empty,
                    CitySubDivisionID = sellerCity != null ? sellerCity.SubDivisionId : string.Empty, //string.Empty,
                    Address           = string.Empty,
                },
                Name           = string.Empty,
                TaxID          = isinfo.taxid,
                BranchCode     = isinfo.GetOrgnumString(),
                CompleteNumber = isinfo.GetTelFax().telNum, //"*****@*****.**",
                URIID          = string.Empty,              //"www.esg.co.th",
                Telephone      = isinfo.GetTelFax().telNum,
                Fax            = isinfo.GetTelFax().faxNum,
            };

            this.BuyerTradeParty = new BuyerTradeParty
            {
                PersonName         = armas.contact,
                Name               = armas.prenam + " " + armas.cusnam,
                TaxID              = armas.taxid,
                BranchCode         = armas.GetOrgnumString(),
                CompleteNumber     = armas.GetTelFax().telNum, //"*****@*****.**",
                URIID              = string.Empty,             //"www.esg.co.th",
                Telephone          = armas.GetTelFax().telNum,
                Fax                = armas.GetTelFax().faxNum,
                PostalTradeAddress = new PostalTradeAddress
                {
                    CountryID            = countries.Where(c => c.Name.ToLower() == "thailand").First().Code,
                    LineOne              = armas.addr01,
                    LineTwo              = armas.addr02 + " " + armas.addr03 + " " + armas.zipcod,
                    PostcodeCode         = armas.zipcod,
                    CountrySubDivisionID = string.Empty,
                    CityID            = buyerCity != null ? buyerCity.CityId : string.Empty,        //string.Empty,
                    CitySubDivisionID = buyerCity != null ? buyerCity.SubDivisionId : string.Empty, //string.Empty,
                    Address           = string.Empty
                }
            };

            this.IncludedSupplyChainTradeLineItem = new List <LineItem>();
            int item_count = 0;

            foreach (StcrdDbf st in stcrd)
            {
                this.IncludedSupplyChainTradeLineItem.Add(new LineItem
                {
                    LineID             = (++item_count).ToString(),
                    Name               = st.stkdes,
                    ChargeAmount       = st.unitpr.ToString(),
                    BilledQuantity     = st.trnqty.ToString(),
                    UnitCode           = "",
                    UnitName           = qucod.Where(q => q.typcod == st.tqucod).First().typdes,
                    ChargeIndicator    = st.discamt > 0 ? "true" : "false",
                    ActualAmount       = st.discamt > 0 ? st.discamt.ToString() : "0",
                    NetLineTotalAmount = st.trnval.ToString(),
                    GlobalID           = "",
                    ProductID          = st.stkcod
                });
            }
            this.ReferencedDocument = new List <RefDocs>();
            if (refDoc != null)
            {
                this.ReferencedDocument.Add(new RefDocs
                {
                    IssuerAssignedID  = refDoc.docnum,
                    IssueDateTime     = refDoc.docdat.Value.ToString("yyyy-MM-ddTHH:mm:ss.fff", CultureInfo.GetCultureInfo("en-US")),
                    ReferenceTypeCode = refDocName != null ? refDocName.typeCode : string.Empty
                });
            }

            this.ApplicableHeaderTradeSettlement = new ApplicableHeaderTradeSettlement
            {
                SpecifiedTradeAllowanceCharge = new SpecifiedTradeAllowanceCharge
                {
                    ChargeIndicator = artrn.discamt > 0 ? "true" : "false",
                    ActualAmount    = artrn.discamt > 0 ? artrn.discamt.ToString() : "0"
                },
                InvoiceCurrencyCode = "THB",
                ApplicableTradeTax  = new ApplicableTradeTax
                {
                    CalculatedRate = artrn.vatrat.ToString(), //"7.00",
                    BasisAmount    = artrn.total.ToString(),
                    VatAmount      = artrn.vatamt.ToString(),
                    TypeCode       = "VAT"
                },
                SpecifiedTradeSettlementHeaderMonetarySummation = new SpecifiedTradeSettlementHeaderMonetarySummation
                {
                    LineTotalAmount           = artrn.amount.ToString(),                //string.Empty,
                    GrandTotalAmountCharactor = string.Empty,
                    TaxTotalAmount            = artrn.vatamt.ToString(),                //string.Empty,
                    GrandTotalAmount          = (artrn.total + artrn.vatamt).ToString() //string.Empty
                }
            };
        }
Пример #6
0
        private void Timer_Tick(object sender, EventArgs e)
        {
            if (this.in_process)
            {
                //new Log { Time = DateTime.Now, DataPath = string.Empty, Description = "Skip new job because previous job is in process" }.SaveLog();
                return;
            }

            List <DateTimeDoJob> date_do_job = this.GetDateDoJob();
            TimeSpan             this_time   = TimeSpan.Parse(DateTime.Now.ToString("HH:mm:ss", CultureInfo.GetCultureInfo("th-TH")));

            // Check if current time is in working time configured.
            if (date_do_job.Where(d => (int)d.dayOfWeek == (int)DateTime.Now.DayOfWeek && d.startTime.CompareTo(this_time) <= 0 && d.endTime.CompareTo(this_time) >= 0).FirstOrDefault() == null)
            {
                // Just skip this job
                return;
            }

            this.in_process = true;
            this.job_list   = new List <PdfJob>();
            var company_list = Helper.Sccomp();

            if (company_list == null)
            {
                Console.WriteLine("Cannot find sccomp.dbf, please make sure \"Express program path\" is configure correctly");
                return;
            }

            foreach (var comp in company_list)
            {
                if (File.Exists(comp.abs_path + this.scanned_file_name))
                {
                    List <Inv> jobs = DbfDataSet.Inv(comp.abs_path + this.scanned_file_name).Where(j => j.status == ((int)JOB_STATE.NEW).ToString()).ToList();
                    foreach (var job in jobs)
                    {
                        this.job_list.Add(new PdfJob
                        {
                            DataPath = comp.abs_path,
                            Docnum   = job.docnum,
                            Email    = job.email,
                            SendTime = null,
                            //Success = false
                        });
                    }
                }
            }

            using (BackgroundWorker wrk = new BackgroundWorker())
            {
                wrk.DoWork += delegate
                {
                    for (int i = 0; i < this.job_list.Count; i++)
                    {
                        var send_result = this.CreateFileAndSendMail(this.job_list[i].DataPath, this.job_list[i].Docnum, this.job_list[i].Email);
                        if (send_result.Success)
                        {
                            this.job_list[i].SendTime = DateTime.Now;
                            if (this.UpdateJobState(this.job_list[i], JOB_STATE.SENDED) == true)
                            {
                                Log log = new Log {
                                    Time = this.job_list[i].SendTime.Value, DataPath = this.job_list[i].DataPath, Description = "Sending document # " + this.job_list[i].Docnum + " to email " + this.job_list[i].Email + " success."
                                };
                                log.SaveLog();
                                this.dgvLog.Invoke(new Action(() =>
                                {
                                    ((BindingList <Log>) this.dgvLog.DataSource).Add(log);
                                    this.dgvLog.FirstDisplayedScrollingRowIndex = this.dgvLog.Rows.Count - 1;
                                }));

                                Console.WriteLine(" -> Send " + this.job_list[i].DataPath + ":" + this.job_list[i].Docnum + " success at " + DateTime.Now.ToString());
                                continue;
                            }
                        }
                        else
                        {
                            throw new Exception(send_result.Message);
                        }
                    }
                };
                wrk.RunWorkerCompleted += delegate
                {
                    this.in_process = false;
                    Console.WriteLine(" ==> Send all documents success at " + DateTime.Now.ToString());
                    Console.WriteLine("");
                };
                wrk.RunWorkerAsync();
            }
        }
Пример #7
0
        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;
            }
        }