Exemple #1
0
        private void button2_Click(object sender, EventArgs e)
        {
            try
            {
                OpenFileDialog OpenFileDialog1 = new OpenFileDialog();
                OpenFileDialog1.Title    = "لطفا فایل اطلاعات خود را انتخاب کنید.";
                OpenFileDialog1.FileName = "";
                OpenFileDialog1.Filter   = "File|*.xlsx;*.xls;*.xml";

                OpenFileDialog OpenFileDialog2 = new OpenFileDialog();
                OpenFileDialog2.Title    = "لطفا زوج کلید خود را انتخاب کنید.";
                OpenFileDialog2.FileName = "";
                OpenFileDialog2.Filter   = "key pair|*.p12;*.pfx;";

                if (OpenFileDialog1.ShowDialog() == DialogResult.OK)
                {
                    if (OpenFileDialog2.ShowDialog() == DialogResult.OK)
                    {
                        var keypairPassword = ShowDialog("پسورد کلید خود را وارد کنید", "");
                        sFileName = OpenFileDialog1.FileName;
                        string ext        = Path.GetExtension(OpenFileDialog1.FileName);
                        var    sanamaInof = new sanamaInfo();
                        if (ext == ".xls" || ext == ".xlsx")
                        {
                            throw new Exception("not implement yet...");
                        }
                        else if (ext == ".xml")
                        {
                            sanamaInof = readXml(sFileName);
                        }
                        else
                        {
                            throw new Exception("فرمت فایل شما اشتباه است.");
                        }
                        var client = new PushSanamaClient();
                        client.ClientCredentials.ServiceCertificate.DefaultCertificate = new X509Certificate2("bitaServicebusCert.cer");
                        client.ClientCredentials.ClientCertificate.Certificate         = new X509Certificate2(OpenFileDialog2.FileName, keypairPassword, X509KeyStorageFlags.PersistKeySet);
                        client.ClientCredentials.ServiceCertificate.Authentication.CertificateValidationMode = X509CertificateValidationMode.None;
                        var result = client.send(sanamaInof);
                        MessageBox.Show(result, "اطلاعات با موفقیت ارسال شد.", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "خطا", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
Exemple #2
0
        private sanamaInfo createSanamaInfo(string sFile)
        {
            XmlDocument xmlDocument = new XmlDocument();

            xmlDocument.Load(sFile);
            XmlNodeList sanamaInfoList = xmlDocument.SelectNodes("SanamaInfo");

            if (sanamaInfoList.Count != 1)
            {
                throw new Exception("فایل مورد نظر باید تنها شامل 1 SanamaInfo باشد.");
            }
            var sanamaInfoXml = sanamaInfoList.Item(0);
            var sanamaInfo    = new sanamaInfo();

            sanamaInfo.mainOrgCode  = sanamaInfoXml.Attributes["MainOrgCode"] == null ? null : sanamaInfoXml.Attributes["MainOrgCode"].Value;
            sanamaInfo.mainOrgID    = sanamaInfoXml.Attributes["MainOrgID"] == null ? null : sanamaInfoXml.Attributes["MainOrgID"].Value;
            sanamaInfo.month        = getXmlElementAttributeValueAsInt32(sanamaInfoXml.Attributes["Month"]);
            sanamaInfo.protocolName = sanamaInfoXml.Attributes["ProtocolName"] == null ? null : sanamaInfoXml.Attributes["ProtocolName"].Value;
            sanamaInfo.protocolType = sanamaInfoXml.Attributes["ProtocolType"] == null ? null : sanamaInfoXml.Attributes["ProtocolType"].Value;
            sanamaInfo.protocolVer  = sanamaInfoXml.Attributes["ProtocolVer"] == null ? null : sanamaInfoXml.Attributes["ProtocolVer"].Value;
            sanamaInfo.year         = getXmlElementAttributeValueAsInt32(sanamaInfoXml.Attributes["Year"]);
            var attachments      = new List <attachment>();
            var contrastAccounts = new List <contrastAccount>();
            var reports          = new List <report>();

            foreach (XmlElement xmlElement in sanamaInfoXml.SelectNodes("Report_List"))
            {
                var report = new report();
                report.accCode = xmlElement.Attributes["AccCode"] == null ? null : xmlElement.Attributes["AccCode"].Value;
                report.summaryProgressDeptor   = getXmlElementAttributeValueAsLong(xmlElement.Attributes["SummaryProgressDeptor"]);
                report.summaryProgressCreditor = getXmlElementAttributeValueAsLong(xmlElement.Attributes["SummaryProgressCreditor"]);
                report.sourceType            = getXmlElementAttributeValueAsInt32(xmlElement.Attributes["SourceType"]);
                report.sourceEssence         = getXmlElementAttributeValueAsInt32(xmlElement.Attributes["SourceEssence"]);
                report.otherSourceType       = getXmlElementAttributeValueAsInt32(xmlElement.Attributes["OtherSourceType"]);
                report.creditType            = getXmlElementAttributeValueAsInt32(xmlElement.Attributes["CreditType"]);
                report.transferalType        = getXmlElementAttributeValueAsInt32(xmlElement.Attributes["TransferalType"]);
                report.creditInfo            = getXmlElementAttributeValueAsInt32(xmlElement.Attributes["CreditInfo"]);
                report.expenseArticle        = getXmlElementAttributeValueAsInt32(xmlElement.Attributes["ExpenseArticle"]);
                report.constructArticle      = getXmlElementAttributeValueAsInt32(xmlElement.Attributes["ConstructArticle"]);
                report.expenseDetailArticle  = xmlElement.Attributes["ExpenseDetailArticle"] == null ? null : xmlElement.Attributes["ExpenseDetailArticle"].Value;
                report.incomeCode            = xmlElement.Attributes["IncomeCode"] == null ? null : xmlElement.Attributes["IncomeCode"].Value;
                report.incomeSubject         = getXmlElementAttributeValueAsInt32(xmlElement.Attributes["IncomeSubject"]);
                report.governmental          = getXmlElementAttributeValueAsInt32(xmlElement.Attributes["Governmental"]);
                report.taxSeason             = getXmlElementAttributeValueAsInt32(xmlElement.Attributes["TaxSeason"]);
                report.debentureSenderRank   = xmlElement.Attributes["DebentureSenderRank"] == null ? null : xmlElement.Attributes["DebentureSenderRank"].Value;
                report.debentureReceiverRank = xmlElement.Attributes["DebentureReceiverRank"] == null ? null : xmlElement.Attributes["DebentureReceiverRank"].Value;
                report.costCenter            = xmlElement.Attributes["CostCenter"] == null ? null : xmlElement.Attributes["CostCenter"].Value;
                report.awardArticle          = getXmlElementAttributeValueAsInt32(xmlElement.Attributes["AwardArticle"]);
                report.securitiesType        = getXmlElementAttributeValueAsInt32(xmlElement.Attributes["SecuritiesType"]);
                report.guaranteeEssence      = getXmlElementAttributeValueAsInt32(xmlElement.Attributes["GuaranteeEssence"]);
                report.year                     = getXmlElementAttributeValueAsInt32(xmlElement.Attributes["Year"]);
                report.nominee                  = xmlElement.Attributes["Nominee"] == null ? null : xmlElement.Attributes["Nominee"].Value;
                report.demandStatus             = getXmlElementAttributeValueAsInt32(xmlElement.Attributes["DemandStatus"]);
                report.tempPaymentType          = getXmlElementAttributeValueAsInt32(xmlElement.Attributes["TempPaymentType"]);
                report.leakageSubject           = getXmlElementAttributeValueAsInt32(xmlElement.Attributes["LeakageSubject"]);
                report.assuranceType            = getXmlElementAttributeValueAsInt32(xmlElement.Attributes["AssuranceType"]);
                report.assuranceSubject         = getXmlElementAttributeValueAsInt32(xmlElement.Attributes["AssuranceSubject"]);
                report.currencyType             = getXmlElementAttributeValueAsInt32(xmlElement.Attributes["CurrencyType"]);
                report.accountNumber            = xmlElement.Attributes["AccountNumber"] == null ? null : xmlElement.Attributes["AccountNumber"].Value;
                report.debitSubject             = getXmlElementAttributeValueAsInt32(xmlElement.Attributes["DebitSubject"]);
                report.fixedAssetType           = getXmlElementAttributeValueAsInt32(xmlElement.Attributes["FixedAssetType"]);
                report.inventoryType            = getXmlElementAttributeValueAsInt32(xmlElement.Attributes["InventoryType"]);
                report.quantity                 = getXmlElementAttributeValueAsInt32(xmlElement.Attributes["Quantity"]);
                report.dueDate                  = xmlElement.Attributes["DueDate"] == null ? null : xmlElement.Attributes["DueDate"].Value;
                report.securitiesProperties     = xmlElement.Attributes["SecuritiesProperties"] == null ? null : xmlElement.Attributes["SecuritiesProperties"].Value;
                report.investmentType           = getXmlElementAttributeValueAsInt32(xmlElement.Attributes["InvestmentType"]);
                report.annualAdjustmentsSubject = getXmlElementAttributeValueAsInt32(xmlElement.Attributes["AnnualAdjustmentsSubject"]);
                reports.Add(report);
            }
            foreach (XmlElement xmlElement in sanamaInfoXml.SelectNodes("ContrastAccount_list"))
            {
                var contrastAccount = new contrastAccount();
                contrastAccount.accountNumber       = xmlElement.Attributes["AccountNumber"] == null ? null : xmlElement.Attributes["AccountNumber"].Value;
                contrastAccount.accountDscp         = xmlElement.Attributes["AccountDscp"] == null ? null : xmlElement.Attributes["AccountDscp"].Value;
                contrastAccount.accountType         = getXmlElementAttributeValueAsInt32(xmlElement.Attributes["AccountType"]);
                contrastAccount.mojoodiTebgheDaftar = getXmlElementAttributeValueAsLong(xmlElement.Attributes["MojoodiTebgheDaftar"]);
                contrastAccount.mojoodiTebgheBank   = getXmlElementAttributeValueAsLong(xmlElement.Attributes["MojoodiTebgheBank"]);

                contrastAccount.diffType1  = createDiffType(xmlElement, "DiffType1");
                contrastAccount.diffType2  = createDiffType(xmlElement, "DiffType2");
                contrastAccount.diffType3  = createDiffType(xmlElement, "DiffType3");
                contrastAccount.diffType4  = createDiffType(xmlElement, "DiffType4");
                contrastAccount.diffType5  = createDiffType(xmlElement, "DiffType5");
                contrastAccount.diffType6  = createDiffType(xmlElement, "DiffType6");
                contrastAccount.diffType7  = createDiffType(xmlElement, "DiffType7");
                contrastAccount.diffType8  = createDiffType(xmlElement, "DiffType8");
                contrastAccount.diffType9  = createDiffType(xmlElement, "DiffType9");
                contrastAccount.diffType10 = createDiffType(xmlElement, "DiffType10");
                contrastAccount.diffType11 = createDiffType(xmlElement, "DiffType11");
                contrastAccount.diffType12 = createDiffType(xmlElement, "DiffType12");
                contrastAccounts.Add(contrastAccount);
            }
            sanamaInfo.contrastAccounts = contrastAccounts.ToArray();
            sanamaInfo.reports          = reports.ToArray();
            return(sanamaInfo);
        }